reapack-index 1.1beta4 → 1.1rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +2 -0
- data/lib/reapack/index/cli/options.rb +13 -3
- data/lib/reapack/index/cli.rb +5 -7
- data/lib/reapack/index/gem_version.rb +1 -1
- data/lib/reapack/index/git.rb +9 -3
- data/setup/reapack-index.nsi +1 -1
- data/test/cli/test_scan.rb +15 -8
- data/test/test_cli.rb +31 -3
- data/test/test_git.rb +7 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55a64059d22c205bb18d8854f3603fc8e89110e6
|
4
|
+
data.tar.gz: 849a34318b8679e8d34d4f10c99a7101b22c2fd7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf8ba5d83856c37efc94d269d09cab08b98e31d0197711f73511710c44854211ff535600d7ae89527d5239856bc4769e030a1ac2107f20ece264323c9a78ce11
|
7
|
+
data.tar.gz: 5e4d1f32904bdbd1a01d201de7c37d02e2e7b919956e6cd6e0dd16f9a0542fbbe2c10fccd450c94aa59a4c1e0b5474b1804d25270cff3c9d7a1b16a25d3badee
|
data/README.md
CHANGED
@@ -30,6 +30,7 @@ reapack-index [options] [path-to-your-repository]
|
|
30
30
|
Modes:
|
31
31
|
-c, --check Test every package including uncommited changes and exit
|
32
32
|
-s, --scan [FILE|COMMIT] Scan new commits (default), a file or a commit
|
33
|
+
--no-scan Do not scan for new commits
|
33
34
|
--rebuild Clear the index and rescan the whole git history
|
34
35
|
Indexer options:
|
35
36
|
-a, --[no-]amend Update existing versions
|
@@ -51,6 +52,7 @@ Misc options:
|
|
51
52
|
-V, --[no-]verbose Activate diagnosis messages
|
52
53
|
-C, --[no-]commit Select whether to commit the modified index
|
53
54
|
--prompt-commit Ask at runtime whether to commit the index
|
55
|
+
-m, --commit-template MESSAGE Customize the commit message. Supported placeholder: $changelog
|
54
56
|
-W, --warnings Enable warnings
|
55
57
|
-w, --no-warnings Turn off warnings
|
56
58
|
-q, --[no-]quiet Disable almost all output
|
@@ -9,6 +9,7 @@ class ReaPack::Index::CLI
|
|
9
9
|
DEFAULTS = {
|
10
10
|
check: false,
|
11
11
|
commit: nil,
|
12
|
+
message: 'index: $changelog',
|
12
13
|
ignore: [],
|
13
14
|
output: './index.xml',
|
14
15
|
progress: true,
|
@@ -33,10 +34,10 @@ class ReaPack::Index::CLI
|
|
33
34
|
next
|
34
35
|
end
|
35
36
|
|
36
|
-
|
37
|
-
File.foreach(path) {|line| opts << Shellwords.split(line) }
|
38
|
-
opts
|
37
|
+
Shellwords.split File.read(path)
|
39
38
|
}.flatten.compact
|
39
|
+
rescue ArgumentError => e
|
40
|
+
raise ReaPack::Index::Error, e.message
|
40
41
|
end
|
41
42
|
|
42
43
|
def parse_options(args)
|
@@ -65,6 +66,10 @@ class ReaPack::Index::CLI
|
|
65
66
|
end
|
66
67
|
end
|
67
68
|
|
69
|
+
op.on '--no-scan', 'Do not scan for new commits' do
|
70
|
+
opts[:scan] = false
|
71
|
+
end
|
72
|
+
|
68
73
|
op.on '--rebuild', 'Clear the index and rescan the whole git history' do
|
69
74
|
opts[:check] = false
|
70
75
|
opts[:rebuild] = true
|
@@ -150,6 +155,11 @@ class ReaPack::Index::CLI
|
|
150
155
|
opts[:commit] = nil
|
151
156
|
end
|
152
157
|
|
158
|
+
op.on '-m', "--commit-template MESSAGE",
|
159
|
+
'Customize the commit message. Supported placeholder: $changelog' do |msg|
|
160
|
+
opts[:message] = msg
|
161
|
+
end
|
162
|
+
|
153
163
|
op.on '-W', '--warnings', 'Enable warnings' do
|
154
164
|
opts[:warnings] = true
|
155
165
|
end
|
data/lib/reapack/index/cli.rb
CHANGED
@@ -40,7 +40,7 @@ class ReaPack::Index::CLI
|
|
40
40
|
|
41
41
|
unless @index.modified?
|
42
42
|
$stderr.puts 'Nothing to do!' unless @opts[:quiet]
|
43
|
-
return
|
43
|
+
return true
|
44
44
|
end
|
45
45
|
|
46
46
|
# changelog will be cleared by Index#write!
|
@@ -63,14 +63,11 @@ private
|
|
63
63
|
end
|
64
64
|
|
65
65
|
def do_scan
|
66
|
-
if @git.empty?
|
67
|
-
warn 'The current branch does not contains any commit.'
|
68
|
-
return
|
69
|
-
end
|
70
|
-
|
71
66
|
commits = if @opts[:rebuild]
|
72
67
|
@index.clear
|
73
68
|
@git.commits
|
69
|
+
elsif @opts[:scan] == false
|
70
|
+
[]
|
74
71
|
elsif @opts[:scan].empty?
|
75
72
|
@git.commits_since @index.last_commit
|
76
73
|
else
|
@@ -256,7 +253,8 @@ private
|
|
256
253
|
prompt 'Commit the new index?'
|
257
254
|
end
|
258
255
|
|
259
|
-
@
|
256
|
+
message = @opts[:message].gsub '$changelog', changelog
|
257
|
+
@git.create_commit message, [@index.path]
|
260
258
|
$stderr.puts 'commit created'
|
261
259
|
end
|
262
260
|
|
data/lib/reapack/index/git.rb
CHANGED
@@ -2,14 +2,20 @@ class ReaPack::Index
|
|
2
2
|
class Git
|
3
3
|
def initialize(path)
|
4
4
|
@repo = Rugged::Repository.discover path.encode(Encoding::UTF_8)
|
5
|
+
|
6
|
+
if @repo.bare?
|
7
|
+
raise ReaPack::Index::Error,
|
8
|
+
'reapack-index cannot be run in a repository without a work tree'
|
9
|
+
end
|
5
10
|
end
|
6
11
|
|
7
12
|
def empty?
|
8
|
-
|
13
|
+
# head_unborn = orphan branch – FIXME: add test for this case
|
14
|
+
@repo.empty? || @repo.head_unborn?
|
9
15
|
end
|
10
16
|
|
11
17
|
def path
|
12
|
-
File.expand_path @repo.workdir
|
18
|
+
@path ||= File.expand_path @repo.workdir
|
13
19
|
end
|
14
20
|
|
15
21
|
def commits
|
@@ -58,7 +64,7 @@ class ReaPack::Index
|
|
58
64
|
end
|
59
65
|
|
60
66
|
def relative_path(path)
|
61
|
-
root = Pathname.new
|
67
|
+
root = Pathname.new self.path
|
62
68
|
file = Pathname.new path
|
63
69
|
|
64
70
|
file.relative_path_from(root).to_s
|
data/setup/reapack-index.nsi
CHANGED
data/test/cli/test_scan.rb
CHANGED
@@ -42,14 +42,6 @@ class TestCLI::Scan < MiniTest::Test
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
def test_empty_branch
|
46
|
-
wrapper do
|
47
|
-
assert_output nil, /the current branch does not contains any commit/i do
|
48
|
-
@cli.run
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
45
|
def test_workingdir_is_subdirectory
|
54
46
|
wrapper do
|
55
47
|
@git.create_commit 'initial commit',
|
@@ -464,6 +456,21 @@ processing [a-f0-9]{7}: third commit
|
|
464
456
|
end
|
465
457
|
end
|
466
458
|
|
459
|
+
def test_no_scan
|
460
|
+
options = ['--no-scan']
|
461
|
+
|
462
|
+
setup = proc {
|
463
|
+
@git.create_commit 'initial commit',
|
464
|
+
[mkfile('cat/test1.lua', '@version 1.0')]
|
465
|
+
}
|
466
|
+
|
467
|
+
wrapper options, setup: setup do
|
468
|
+
capture_io { @cli.run }
|
469
|
+
|
470
|
+
refute_match 'test1.lua', read_index, 'The initial commit was scanned'
|
471
|
+
end
|
472
|
+
end
|
473
|
+
|
467
474
|
def test_no_arguments
|
468
475
|
wrapper ['--scan'] do; end
|
469
476
|
end
|
data/test/test_cli.rb
CHANGED
@@ -89,9 +89,19 @@ class TestCLI < MiniTest::Test
|
|
89
89
|
end
|
90
90
|
end
|
91
91
|
|
92
|
+
def test_custom_commit_message
|
93
|
+
wrapper ['--commit', '--commit-template', 'a $changelog b $changelog c'] do
|
94
|
+
assert_output("empty index\n", /commit created\n/) { @cli.run }
|
95
|
+
|
96
|
+
commit = @git.last_commit
|
97
|
+
assert_equal 'a empty index b empty index c', commit.message
|
98
|
+
assert_equal ['index.xml'], commit.each_diff.map {|d| d.file }
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
92
102
|
def test_config
|
93
|
-
|
94
|
-
|
103
|
+
assert_output /--help/, '' do
|
104
|
+
catch :stop do
|
95
105
|
wrapper [], setup: proc {
|
96
106
|
mkfile '.reapack-index.conf', '--help'
|
97
107
|
}
|
@@ -141,6 +151,24 @@ class TestCLI < MiniTest::Test
|
|
141
151
|
end
|
142
152
|
end
|
143
153
|
|
154
|
+
def test_config_unmatched_quote
|
155
|
+
assert_output '', /unmatched double quote/i do
|
156
|
+
catch :stop do
|
157
|
+
wrapper [], setup: proc {
|
158
|
+
mkfile '.reapack-index.conf', '--output "'
|
159
|
+
}
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
def test_config_line_break
|
165
|
+
assert_output '', '' do
|
166
|
+
wrapper [], setup: proc {
|
167
|
+
mkfile '.reapack-index.conf', %Q{--commit-template="hello\nworld"}
|
168
|
+
}
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
144
172
|
def test_working_directory_with_options
|
145
173
|
wrapper do
|
146
174
|
@git.create_commit 'initial commit',
|
@@ -207,7 +235,7 @@ class TestCLI < MiniTest::Test
|
|
207
235
|
|
208
236
|
wrapper ['--progress'], setup: setup do
|
209
237
|
assert_output '', /nothing to do/i do
|
210
|
-
@cli.run
|
238
|
+
assert_equal true, @cli.run
|
211
239
|
end
|
212
240
|
end
|
213
241
|
end
|
data/test/test_git.rb
CHANGED
@@ -170,4 +170,11 @@ class TestGit < MiniTest::Test
|
|
170
170
|
assert_match c.summary, c.inspect
|
171
171
|
refute_match c.message, c.inspect
|
172
172
|
end
|
173
|
+
|
174
|
+
def test_bare_repo
|
175
|
+
path = Dir.mktmpdir 'test-repository'
|
176
|
+
|
177
|
+
repo = Rugged::Repository.init_at path, true
|
178
|
+
assert_raises(ReaPack::Index::Error) { ReaPack::Index::Git.new path }
|
179
|
+
end
|
173
180
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reapack-index
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- cfillion
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|