oleg 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/leg/commands/repo.rb +47 -0
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ac8cee4dad8a55e94651eb2d33edd53cea75916
4
- data.tar.gz: 84e8815155601c9aae38aef137118b32566b1eed
3
+ metadata.gz: cf6dc4d35d1d56ccd42336c8823eed7084bdc3e2
4
+ data.tar.gz: 7e606d646f3bb7e4813a883d9d77f6a6d1aecd36
5
5
  SHA512:
6
- metadata.gz: 2cdf3ddf88c6ba1d8a45cd97eaadf9ec5e915e615789ffbbcd578f2f0fe8435ad27a29a4a8957ef902128968e6efeec5e2322f57eea92ab9b7e0759af1227b04
7
- data.tar.gz: 94b7d9b06b895d56075c3fb31249b713ca6445961f95f78b3818af9ca624632a79ecdf5eda99185f951f79c3731e08cdfd847e0200c578ddce7e6daee3941c71
6
+ metadata.gz: 5eecfdee1f304905f0103913c4b6f50b8a63c50a0f51ed3eae3c57f709bc5091a6cfac72b3fc352dc38a30f34e2a947fe7d8b9f025b753635a62efae28c0913e
7
+ data.tar.gz: 93e50b46cb0b4ddb905b3744e5b2c4461f37ca5c385a6809d6dd9b54f08744296f88e615dbf7fdfa5de7e0f4f461c7f433071e03bef39a87b0ed6b1831c7a450
@@ -56,7 +56,54 @@ class Leg::Commands::Repo < Leg::Commands::BaseCommand
56
56
 
57
57
  repo.checkout_head(strategy: :force)
58
58
 
59
+ File.write("repo/.git/hooks/post-commit", POST_COMMIT_HOOK)
60
+ File.write("repo/.git/hooks/prepare-commit-msg", PREPARE_COMMIT_MSG_HOOK)
61
+ FileUtils.chmod(0755, "repo/.git/hooks/post-commit")
62
+ FileUtils.chmod(0755, "repo/.git/hooks/prepare-commit-msg")
63
+
59
64
  FileUtils.rm_r(steps)
60
65
  end
66
+
67
+ POST_COMMIT_HOOK = <<~'EOF'
68
+ #!/usr/bin/env ruby
69
+
70
+ require 'rugged'
71
+
72
+ repo = Rugged::Repository.discover
73
+ commit = repo.head.target
74
+ parts = commit.message.lines.first.strip.split('-').reject(&:empty?)
75
+ tags = [parts.shift]
76
+ tags << parts.join('-') unless parts.empty?
77
+
78
+ tags.each do |tag|
79
+ repo.references.create("refs/tags/#{tag}", commit.oid)
80
+ end
81
+ EOF
82
+
83
+ PREPARE_COMMIT_MSG_HOOK = <<~'EOF'
84
+ #!/usr/bin/env ruby
85
+
86
+ require 'rugged'
87
+
88
+ repo = Rugged::Repository.discover
89
+ last_commit = repo.head.target
90
+ step_num = nil
91
+ repo.tags.each do |tag|
92
+ if tag.name =~ /\A\d+(\.\d+)*\z/ && tag.target.oid == last_commit.oid
93
+ step_num = tag.name
94
+ break
95
+ end
96
+ end
97
+
98
+ if step_num
99
+ step_num = step_num.split('.')
100
+ step_num[-1] = (step_num[-1].to_i + 1).to_s
101
+ step_num = step_num.join('.')
102
+
103
+ msg = File.read(ARGV[0])
104
+ msg = "#{step_num}-#{msg}"
105
+ File.write(ARGV[0], msg)
106
+ end
107
+ EOF
61
108
  end
62
109
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oleg
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Ruten