vendorificator 0.4.0 → 0.5.git.v0.4.0.17.g26d50d8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/.travis.yml +2 -1
- data/features/chef_cookbook.feature +4 -4
- data/features/download.feature +1 -1
- data/features/edgecases.feature +2 -2
- data/features/environment.feature +10 -10
- data/features/git.feature +5 -5
- data/features/needed.feature +7 -7
- data/features/status.feature +15 -15
- data/features/step_definitions/aruba_ext.rb +8 -1
- data/features/step_definitions/basic.rb +11 -0
- data/features/support/aruba_ext.rb +46 -3
- data/features/support/env.rb +2 -0
- data/features/tarball.feature +4 -4
- data/features/tarball_edit.feature +1 -1
- data/features/tool.feature +4 -4
- data/features/tool_shortcuts.feature +2 -2
- data/features/vendor.feature +1 -1
- data/lib/vendorificator/environment.rb +1 -1
- data/lib/vendorificator/vendor/tool.rb +3 -3
- data/lib/vendorificator/vendor.rb +13 -7
- data/vendorificator.gemspec +8 -2
- metadata +9 -47
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YmMwNmEwMDhlYTI0Y2Q1MmQxY2E3MmFkZmNmYjE2Zjg3YTdiNGZlZQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NzY3ZmNkZTRjOTNjMWQzNWJmMGFmZTJjNGJlYTViZTJmZmQ2NmZjYQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NDNmZGIwYzNhZGJjZjIwNTk3NzhlZDRjYWRkMDZlZmJhNmM4ODA2YWQ4MTBj
|
10
|
+
MGUwZTFiZWNjZjI4ZmViNzQ5YmQ4OGU2ODdlYTNhNTg5OWQ5NmU5YWE0ZTM3
|
11
|
+
NjJmODhkOGIxZTQzYTk0M2Y5ZmM4M2NmMTI0NWQ3OWQzMjE0NjM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ODdlNmQzODdjNTA0MjBkZWFkYTMzMjkwZTdjNzNhNTE1ZmEzYzZhOTI3MTU4
|
14
|
+
MjJmNjBmZTgwMTU4MjczNmYyZTFhMjUyNDQ2ZTEwZTUzYmNlODA2NDg2NjRl
|
15
|
+
NDNlOTc5OTZlNmQ4ZWRhZDQzZjUwMDc2M2ExMWMyZDM5ZmMxNmU=
|
data/.travis.yml
CHANGED
@@ -8,4 +8,5 @@ rvm:
|
|
8
8
|
- jruby-head
|
9
9
|
- rbx-19mode
|
10
10
|
notifications:
|
11
|
-
hipchat:
|
11
|
+
hipchat:
|
12
|
+
secure: "bds8WNPnAmnj2ommhDk2JNclAY1Ei/bGeWONRhhKNv1zwrqMvZ7B6M5UapEZ\n6K8z70vFMrdIDEJjzuf+ATYS0BVWKnXCYaofiIfJ7V2hiBm7/xNZ15m2bIrM\nQFIMR/Lrkd+wFA0O8z6SaPjvdEgZC6im4zAAuRq7LpH3NTy6qaA="
|
@@ -5,7 +5,7 @@ Scenario: A single cookbook, without dependencies
|
|
5
5
|
"""ruby
|
6
6
|
chef_cookbook 'apt'
|
7
7
|
"""
|
8
|
-
When I
|
8
|
+
When I run vendor command "sync"
|
9
9
|
Then following has been conjured:
|
10
10
|
| Name | cookbooks/apt |
|
11
11
|
| With file | metadata.rb |
|
@@ -15,7 +15,7 @@ Scenario: Dependency hook
|
|
15
15
|
"""ruby
|
16
16
|
chef_cookbook 'memcached'
|
17
17
|
"""
|
18
|
-
When I
|
18
|
+
When I run vendor command "sync"
|
19
19
|
Then following has been conjured:
|
20
20
|
| Name | cookbooks/memcached | cookbooks/runit |
|
21
21
|
| With file | metadata.rb | metadata.rb |
|
@@ -26,7 +26,7 @@ Scenario: Ignored dependency
|
|
26
26
|
chef_cookbook_ignore_dependencies ['runit']
|
27
27
|
chef_cookbook 'memcached'
|
28
28
|
"""
|
29
|
-
When I
|
29
|
+
When I run vendor command "sync"
|
30
30
|
Then following has been conjured:
|
31
31
|
| Name | cookbooks/memcached |
|
32
32
|
| With file | metadata.rb |
|
@@ -40,7 +40,7 @@ Scenario: Ignored all dependencies
|
|
40
40
|
chef_cookbook_ignore_dependencies true
|
41
41
|
chef_cookbook 'chef-server'
|
42
42
|
"""
|
43
|
-
When I
|
43
|
+
When I run vendor command "sync"
|
44
44
|
Then following has been conjured:
|
45
45
|
| Name | cookbooks/chef-server |
|
46
46
|
| With file | metadata.rb |
|
data/features/download.feature
CHANGED
@@ -5,7 +5,7 @@ Scenario: just URL as name
|
|
5
5
|
"""ruby
|
6
6
|
download 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
|
7
7
|
"""
|
8
|
-
When I
|
8
|
+
When I run vendor command "sync"
|
9
9
|
Then following has been conjured:
|
10
10
|
| Name | testrepo-0.1.tar.gz |
|
11
11
|
And there's a git commit note including "ea207a" in "download_checksum"
|
data/features/edgecases.feature
CHANGED
@@ -7,7 +7,7 @@ Scenario: module with a .gitignore file
|
|
7
7
|
File.open('.gitignore', 'w') { |f| f.puts 'ignored.txt' }
|
8
8
|
end
|
9
9
|
"""
|
10
|
-
When I
|
10
|
+
When I run vendor command "sync"
|
11
11
|
Then the following has been conjured:
|
12
12
|
| Name | ignore |
|
13
13
|
| With file | .gitignore |
|
@@ -25,7 +25,7 @@ Scenario: module with a .gitignore file
|
|
25
25
|
File.open('.gitignore', 'w') { |f| f.puts 'ignored.txt' }
|
26
26
|
end
|
27
27
|
"""
|
28
|
-
And I
|
28
|
+
And I run vendor command "sync"
|
29
29
|
Then the file "vendor/ignore/files.txt" should not contain "ignored.txt"
|
30
30
|
And the file "vendor/ignore/ignored.txt" should contain exactly:
|
31
31
|
"""
|
@@ -8,8 +8,8 @@ Scenario: Pushing to remote repo
|
|
8
8
|
end
|
9
9
|
"""
|
10
10
|
And a remote repository
|
11
|
-
When I
|
12
|
-
And I
|
11
|
+
When I run vendor command "sync"
|
12
|
+
And I run vendor command "push"
|
13
13
|
Then branch "vendor/generated" exists in the remote repo
|
14
14
|
And tag "vendor/generated/0.23" exists in the remote repo
|
15
15
|
And notes ref "vendor" exists in the remote repo
|
@@ -23,10 +23,10 @@ Scenario: Getting module information
|
|
23
23
|
end
|
24
24
|
"""
|
25
25
|
And a remote repository
|
26
|
-
When I
|
27
|
-
And I
|
28
|
-
Then the last output should match /Module merged version: 0.23/
|
29
|
-
And the last output should match /unparsed_args/
|
26
|
+
When I run vendor command "sync"
|
27
|
+
And I run vendor command "info generated"
|
28
|
+
Then the last vendor output should match /Module merged version: 0.23/
|
29
|
+
And the last vendor output should match /unparsed_args/
|
30
30
|
|
31
31
|
Scenario: Getting revision information
|
32
32
|
Given a repository with following Vendorfile:
|
@@ -36,7 +36,7 @@ Scenario: Getting revision information
|
|
36
36
|
end
|
37
37
|
"""
|
38
38
|
And a remote repository
|
39
|
-
When I
|
40
|
-
And I
|
41
|
-
Then the last output should match /master, vendor\/generated/
|
42
|
-
Then the last output should match /:unparsed_args/
|
39
|
+
When I run vendor command "sync"
|
40
|
+
And I run vendor command "info HEAD^2"
|
41
|
+
Then the last vendor output should match /master, vendor\/generated/
|
42
|
+
Then the last vendor output should match /:unparsed_args/
|
data/features/git.feature
CHANGED
@@ -5,7 +5,7 @@ Scenario: Vendorificating a git repo
|
|
5
5
|
"""ruby
|
6
6
|
git "file://#{ENV['FIXTURES_DIR']}/git/testrepo"
|
7
7
|
"""
|
8
|
-
When I
|
8
|
+
When I run vendor command "sync"
|
9
9
|
Then following has been conjured:
|
10
10
|
| Name | testrepo |
|
11
11
|
| Version | 10e9ac58c77bc229d8c59a5b4eb7422916453148 |
|
@@ -19,7 +19,7 @@ Scenario: Vendorificating a subdirectory from a git repo
|
|
19
19
|
git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
|
20
20
|
:subdirectory => 'test'
|
21
21
|
"""
|
22
|
-
When I
|
22
|
+
When I run vendor command "sync"
|
23
23
|
Then following has been conjured:
|
24
24
|
| Name | testrepo |
|
25
25
|
| Version | 10e9ac58c77bc229d8c59a5b4eb7422916453148 |
|
@@ -33,7 +33,7 @@ Scenario: Vendorificating a certain branch from a git repo
|
|
33
33
|
git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
|
34
34
|
:branch => 'topic/pink'
|
35
35
|
"""
|
36
|
-
When I
|
36
|
+
When I run vendor command "sync"
|
37
37
|
Then following has been conjured:
|
38
38
|
| Name | testrepo |
|
39
39
|
| Version | ecbfa229ba5f11c05b18bcc4f7c32b8f25d63f8c |
|
@@ -47,7 +47,7 @@ Scenario: Vendorificating a certain tag from a git repo
|
|
47
47
|
git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
|
48
48
|
:tag => 'email-v0'
|
49
49
|
"""
|
50
|
-
When I
|
50
|
+
When I run vendor command "sync"
|
51
51
|
Then following has been conjured:
|
52
52
|
| Name | testrepo |
|
53
53
|
| Version | email-v0 |
|
@@ -62,7 +62,7 @@ Scenario: Vendorificating a certain revision from a git repo
|
|
62
62
|
git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
|
63
63
|
:revision => '6ff1be'
|
64
64
|
"""
|
65
|
-
When I
|
65
|
+
When I run vendor command "sync"
|
66
66
|
Then following has been conjured:
|
67
67
|
| Name | testrepo |
|
68
68
|
| Version | 6ff1be9c3819c93a2f41e0ddc09f252fcf154f34 |
|
data/features/needed.feature
CHANGED
@@ -6,12 +6,12 @@ Scenario: already downloaded tarball
|
|
6
6
|
archive :testrepo, :version => '0.1',
|
7
7
|
:url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
|
8
8
|
"""
|
9
|
-
When I
|
9
|
+
When I run vendor command "sync"
|
10
10
|
Then I'm on "master" branch
|
11
|
-
And the last output should match /module\s+testrepo/
|
12
|
-
And the last output should match "testrepo-0.1.tar.gz"
|
11
|
+
And the last vendor output should match /module\s+testrepo/
|
12
|
+
And the last vendor output should match "testrepo-0.1.tar.gz"
|
13
13
|
|
14
|
-
When I
|
15
|
-
Then the last output should match /module\s+testrepo/
|
16
|
-
And the last output should match /up to date\s+testrepo/
|
17
|
-
And the last output should not match "testrepo-0.1.tar.gz"
|
14
|
+
When I run vendor command "sync"
|
15
|
+
Then the last vendor output should match /module\s+testrepo/
|
16
|
+
And the last vendor output should match /up to date\s+testrepo/
|
17
|
+
And the last vendor output should not match "testrepo-0.1.tar.gz"
|
data/features/status.feature
CHANGED
@@ -12,16 +12,16 @@ Background:
|
|
12
12
|
"""
|
13
13
|
|
14
14
|
Scenario: status new module
|
15
|
-
When I
|
16
|
-
Then the last output should match /new\s+generated\/0.23/
|
15
|
+
When I run vendor command "status"
|
16
|
+
Then the last vendor output should match /new\s+generated\/0.23/
|
17
17
|
|
18
18
|
Scenario: status up-to-date module
|
19
|
-
When I
|
20
|
-
And I
|
21
|
-
Then the last output should match /up to date\s+generated\/0.23/
|
19
|
+
When I run vendor command "sync"
|
20
|
+
And I run vendor command "status"
|
21
|
+
Then the last vendor output should match /up to date\s+generated\/0.23/
|
22
22
|
|
23
23
|
Scenario: status outdated modules
|
24
|
-
When I
|
24
|
+
When I run vendor command "sync"
|
25
25
|
And I change Vendorfile to:
|
26
26
|
"""ruby
|
27
27
|
vendor 'generated', :version => '0.42' do |v|
|
@@ -29,8 +29,8 @@ Scenario: status outdated modules
|
|
29
29
|
File.open('VERSION', 'w') { |f| f.puts v.version }
|
30
30
|
end
|
31
31
|
"""
|
32
|
-
And I
|
33
|
-
Then the last output should match /outdated\s+generated\/0.42/
|
32
|
+
And I run vendor command "status"
|
33
|
+
Then the last vendor output should match /outdated\s+generated\/0.42/
|
34
34
|
|
35
35
|
Scenario: Module's dependencies are statused if they are known
|
36
36
|
When I change Vendorfile to:
|
@@ -38,10 +38,10 @@ Scenario: Module's dependencies are statused if they are known
|
|
38
38
|
require 'vendorificator/vendor/chef_cookbook'
|
39
39
|
chef_cookbook 'memcached'
|
40
40
|
"""
|
41
|
-
And I
|
42
|
-
Then the last output should match /new\s+memcached/
|
43
|
-
And the last output should not match "runit"
|
44
|
-
When I
|
45
|
-
And I
|
46
|
-
Then the last output should match /up to date\s+memcached/
|
47
|
-
And the last output should match /up to date\s+runit/
|
41
|
+
And I run vendor command "status"
|
42
|
+
Then the last vendor output should match /new\s+memcached/
|
43
|
+
And the last vendor output should not match "runit"
|
44
|
+
When I run vendor command "sync"
|
45
|
+
And I run vendor command "status"
|
46
|
+
Then the last vendor output should match /up to date\s+memcached/
|
47
|
+
And the last vendor output should match /up to date\s+runit/
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
Then /^the last output should match (#{PATTERN})$/ do |expected|
|
3
2
|
assert { last_output =~ expected }
|
4
3
|
end
|
@@ -7,6 +6,14 @@ Then /^the last output should not match (#{PATTERN})$/ do |expected|
|
|
7
6
|
deny { last_output =~ expected }
|
8
7
|
end
|
9
8
|
|
9
|
+
Then /^the last vendor output should match (#{PATTERN})$/ do |expected|
|
10
|
+
assert { mock_output =~ expected }
|
11
|
+
end
|
12
|
+
|
13
|
+
Then /^the last vendor output should not match (#{PATTERN})$/ do |expected|
|
14
|
+
deny { mock_output =~ expected }
|
15
|
+
end
|
16
|
+
|
10
17
|
Then /^it should fail$/ do
|
11
18
|
deny { last_exit_status == 0 }
|
12
19
|
end
|
@@ -41,3 +41,14 @@ When /^I change Vendorfile to:$/ do |vendorfile_contents|
|
|
41
41
|
write_file('Vendorfile', vendorfile_contents)
|
42
42
|
run_simple 'git commit -m "Updated Vendorfile" Vendorfile'
|
43
43
|
end
|
44
|
+
|
45
|
+
When /^I run vendor command "(.*)"$/ do |args|
|
46
|
+
args = args.split
|
47
|
+
args[0] = args[0].to_sym
|
48
|
+
|
49
|
+
Dir.chdir(current_dir) do
|
50
|
+
with_redirected_stdout do
|
51
|
+
Vendorificator::CLI.start args
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'shellwords'
|
2
|
+
require 'stringio'
|
2
3
|
|
3
4
|
module Vendorificator
|
4
5
|
module TestSupport
|
@@ -8,15 +9,15 @@ module Vendorificator
|
|
8
9
|
end
|
9
10
|
|
10
11
|
def last_stdout
|
11
|
-
last_process.stdout
|
12
|
+
unescape last_process.stdout
|
12
13
|
end
|
13
14
|
|
14
15
|
def last_stderr
|
15
|
-
last_process.stderr
|
16
|
+
unescape last_process.stderr
|
16
17
|
end
|
17
18
|
|
18
19
|
def last_output
|
19
|
-
last_stdout + last_stderr
|
20
|
+
unescape(last_stdout + last_stderr)
|
20
21
|
end
|
21
22
|
|
22
23
|
def without_bundler(cmd)
|
@@ -24,6 +25,48 @@ module Vendorificator
|
|
24
25
|
].map { |v| "unset #{v} ; " }.join << cmd
|
25
26
|
"sh -c #{Shellwords.escape(cmd)}"
|
26
27
|
end
|
28
|
+
|
29
|
+
def with_redirected_stdout(&block)
|
30
|
+
redirect_stdout
|
31
|
+
yield
|
32
|
+
bring_back_stdout
|
33
|
+
end
|
34
|
+
|
35
|
+
def mock_stdout
|
36
|
+
unescape @stdout_cache
|
37
|
+
end
|
38
|
+
|
39
|
+
def mock_stderr
|
40
|
+
unescape @stderr_cache
|
41
|
+
end
|
42
|
+
|
43
|
+
def mock_output
|
44
|
+
mock_stdout + mock_stderr
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
|
49
|
+
def redirect_stdout
|
50
|
+
@stdout_cache = ''
|
51
|
+
@stderr_cache = ''
|
52
|
+
|
53
|
+
@stdout_redirected = true
|
54
|
+
@orig_stdout = $stdout
|
55
|
+
@orig_stderr = $stderr
|
56
|
+
$stdout = @mock_stdout = StringIO.new
|
57
|
+
$stderr = @mock_stderr = StringIO.new
|
58
|
+
end
|
59
|
+
|
60
|
+
def bring_back_stdout
|
61
|
+
@stdout_cache = @mock_stderr.string
|
62
|
+
@stderr_cache = @mock_stdout.string
|
63
|
+
|
64
|
+
@stdout_redirected = false
|
65
|
+
$stdout = @orig_stdout
|
66
|
+
$stderr = @orig_stderr
|
67
|
+
@orig_stdout = @mock_stdout = nil
|
68
|
+
@orig_stderr = @mock_stderr = nil
|
69
|
+
end
|
27
70
|
end
|
28
71
|
end
|
29
72
|
end
|
data/features/support/env.rb
CHANGED
data/features/tarball.feature
CHANGED
@@ -5,7 +5,7 @@ Scenario: just URL as name
|
|
5
5
|
"""ruby
|
6
6
|
archive 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
|
7
7
|
"""
|
8
|
-
When I
|
8
|
+
When I run vendor command "sync"
|
9
9
|
Then following has been conjured:
|
10
10
|
| Name | testrepo-0.1 |
|
11
11
|
| Version | testrepo-0.1.tar.gz |
|
@@ -17,7 +17,7 @@ Scenario: URL as keyword
|
|
17
17
|
archive :testrepo,
|
18
18
|
:url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
|
19
19
|
"""
|
20
|
-
When I
|
20
|
+
When I run vendor command "sync"
|
21
21
|
Then following has been conjured:
|
22
22
|
| Name | testrepo |
|
23
23
|
| Version | testrepo-0.1.tar.gz |
|
@@ -31,7 +31,7 @@ Scenario: Version & checksum
|
|
31
31
|
:version => '0.1',
|
32
32
|
:checksum => 'ea207a896f929ffb3a1dfe128332d6134a18edab7c01b97bfb2b1c7eacebe0cb'
|
33
33
|
"""
|
34
|
-
When I
|
34
|
+
When I run vendor command "sync"
|
35
35
|
Then following has been conjured:
|
36
36
|
| Name | testrepo |
|
37
37
|
| Version | 0.1 |
|
@@ -60,7 +60,7 @@ Scenario: Tarball without a root directory
|
|
60
60
|
archive :testrepo,
|
61
61
|
:url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1-noroot.tar.gz'
|
62
62
|
"""
|
63
|
-
When I
|
63
|
+
When I run vendor command "sync"
|
64
64
|
Then following has been conjured:
|
65
65
|
| Name | testrepo |
|
66
66
|
| With file | test/alias.c |
|
data/features/tool.feature
CHANGED
@@ -20,7 +20,7 @@ Scenario: Use Gem bundler to download rubygems, and Vendorificator to vendor the
|
|
20
20
|
source "file://#{ENV['FIXTURES_DIR']}/rubygems"
|
21
21
|
gem "hello"
|
22
22
|
"""
|
23
|
-
When I
|
23
|
+
When I run vendor command "sync"
|
24
24
|
Then following has been conjured:
|
25
25
|
| Name | bundler |
|
26
26
|
| Path | cache |
|
@@ -33,7 +33,7 @@ Scenario: Bundler correctly downloads and caches dependencies
|
|
33
33
|
source "file://#{ENV['FIXTURES_DIR']}/rubygems"
|
34
34
|
gem "first"
|
35
35
|
"""
|
36
|
-
When I
|
36
|
+
When I run vendor command "sync"
|
37
37
|
Then following has been conjured:
|
38
38
|
| Name | bundler |
|
39
39
|
| Path | cache |
|
@@ -47,7 +47,7 @@ Scenario: directory contents are completely replaced on re-vendoring
|
|
47
47
|
source "file://#{ENV['FIXTURES_DIR']}/rubygems"
|
48
48
|
gem "hello"
|
49
49
|
"""
|
50
|
-
When I
|
50
|
+
When I run vendor command "sync"
|
51
51
|
Then following has been conjured:
|
52
52
|
| Name | bundler |
|
53
53
|
| Path | cache |
|
@@ -58,7 +58,7 @@ Scenario: directory contents are completely replaced on re-vendoring
|
|
58
58
|
source "file://#{ENV['FIXTURES_DIR']}/rubygems"
|
59
59
|
gem "first"
|
60
60
|
"""
|
61
|
-
And I
|
61
|
+
And I run vendor command "sync"
|
62
62
|
Then following has been conjured:
|
63
63
|
| Name | bundler |
|
64
64
|
| Path | cache |
|
@@ -14,7 +14,7 @@ Scenario: rubygems_bundler
|
|
14
14
|
source "file://#{ENV['FIXTURES_DIR']}/rubygems"
|
15
15
|
gem "hello"
|
16
16
|
"""
|
17
|
-
When I
|
17
|
+
When I run vendor command "sync"
|
18
18
|
Then following has been conjured:
|
19
19
|
| Name | rubygems |
|
20
20
|
| Path | cache |
|
@@ -35,7 +35,7 @@ Scenario: chef_berkshelf
|
|
35
35
|
And I successfully run `berks install`
|
36
36
|
And I successfully run `git add Berksfile Berksfile.lock`
|
37
37
|
And I successfully run `git commit -m Berksfile`
|
38
|
-
When I
|
38
|
+
When I run vendor command "sync"
|
39
39
|
Then following has been conjured:
|
40
40
|
| Name | cookbooks |
|
41
41
|
| With file | build-essential/metadata.rb |
|
data/features/vendor.feature
CHANGED
@@ -197,7 +197,7 @@ module Vendorificator
|
|
197
197
|
:vendorificator_version => ::Vendorificator::VERSION,
|
198
198
|
:current_branch => git.capturing.rev_parse({:abbrev_ref => true}, 'HEAD').strip,
|
199
199
|
:current_sha => git.capturing.rev_parse('HEAD').strip,
|
200
|
-
:git_describe => (git.capturing.describe.strip rescue '')
|
200
|
+
:git_describe => (git.capturing.describe(:always => true).strip rescue '')
|
201
201
|
}
|
202
202
|
end
|
203
203
|
|
@@ -21,9 +21,9 @@ module Vendorificator
|
|
21
21
|
File.join(git.git_work_tree, spec),
|
22
22
|
verbose: true
|
23
23
|
end
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
end
|
25
|
+
Dir.chdir(git.git_work_tree) do
|
26
|
+
system self.command or raise RuntimeError, "Command failed"
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -162,11 +162,17 @@ module Vendorificator
|
|
162
162
|
|
163
163
|
def in_branch(options={}, &block)
|
164
164
|
branch_exists = !!self.head
|
165
|
+
notes_exist = begin
|
166
|
+
git.capturing.rev_parse({verify: true, quiet: true}, 'refs/notes/vendor')
|
167
|
+
rescue MiniGit::GitError
|
168
|
+
nil
|
169
|
+
end
|
165
170
|
Dir.mktmpdir("vendor-#{category}-#{name}") do |tmpdir|
|
166
171
|
clone_opts = {:shared => true, :no_checkout => true}
|
167
172
|
clone_opts[:branch] = branch_name if branch_exists
|
168
173
|
MiniGit.git(:clone, clone_opts, git.git_dir, tmpdir)
|
169
174
|
tmpgit = MiniGit::new(tmpdir)
|
175
|
+
tmpgit.fetch(git.git_dir, "refs/notes/vendor:refs/notes/vendor") if notes_exist
|
170
176
|
tmpgit.checkout({orphan: true}, branch_name) unless branch_exists
|
171
177
|
tmpgit.rm( { :r => true, :f => true, :q => true, :ignore_unmatch => true }, '.') if options[:clean] || !branch_exists
|
172
178
|
|
@@ -182,8 +188,8 @@ module Vendorificator
|
|
182
188
|
git.fetch(tmpdir)
|
183
189
|
git.fetch({tags: true}, tmpdir)
|
184
190
|
git.fetch(tmpdir,
|
185
|
-
"
|
186
|
-
"
|
191
|
+
"refs/heads/#{branch_name}:refs/heads/#{branch_name}",
|
192
|
+
"refs/notes/vendor:refs/notes/vendor")
|
187
193
|
end
|
188
194
|
end
|
189
195
|
|
@@ -223,7 +229,7 @@ module Vendorificator
|
|
223
229
|
commit_and_annotate(options[:metadata])
|
224
230
|
end
|
225
231
|
# Merge back to the original branch
|
226
|
-
git.merge( {:no_edit => true, :no_ff => true}, branch_name )
|
232
|
+
git.capturing.merge( {:no_edit => true, :no_ff => true}, branch_name )
|
227
233
|
postprocess! if self.respond_to? :postprocess!
|
228
234
|
compute_dependencies!
|
229
235
|
ensure
|
@@ -330,10 +336,10 @@ module Vendorificator
|
|
330
336
|
#
|
331
337
|
# Returns nothing.
|
332
338
|
def commit_and_annotate(environment_metadata = {})
|
333
|
-
git.add work_dir, *git_add_extra_paths
|
334
|
-
git.commit :m => conjure_commit_message
|
335
|
-
git.notes({:ref => 'vendor'}, 'add', {:m => conjure_note(environment_metadata)}, 'HEAD')
|
336
|
-
git.tag( { :a => true, :m => tag_message }, tag_name )
|
339
|
+
git.capturing.add work_dir, *git_add_extra_paths
|
340
|
+
git.capturing.commit :m => conjure_commit_message
|
341
|
+
git.capturing.notes({:ref => 'vendor'}, 'add', {:m => conjure_note(environment_metadata)}, 'HEAD')
|
342
|
+
git.capturing.tag( { :a => true, :m => tag_message }, tag_name )
|
337
343
|
shell.say_status :tag, tag_name
|
338
344
|
end
|
339
345
|
|
data/vendorificator.gemspec
CHANGED
@@ -16,14 +16,20 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
17
|
gem.name = "vendorificator"
|
18
18
|
gem.require_paths = ["lib"]
|
19
|
-
gem.version =
|
19
|
+
gem.version = if ENV['PRERELEASE']
|
20
|
+
require 'minigit'
|
21
|
+
git_desc = MiniGit::Capturing.new(__FILE__).describe.strip.gsub('-', '.')
|
22
|
+
Gem::Version.new(Vendorificator::VERSION).bump.to_s << ".git.#{git_desc}"
|
23
|
+
else
|
24
|
+
Vendorificator::VERSION
|
25
|
+
end
|
20
26
|
|
21
27
|
gem.add_dependency 'escape'
|
22
28
|
gem.add_dependency 'thor', '>= 0.18.1'
|
23
29
|
gem.add_dependency 'minigit', '>= 0.0.3'
|
24
30
|
gem.add_dependency 'awesome_print'
|
25
31
|
|
26
|
-
gem.add_development_dependency 'aruba', '0.5.
|
32
|
+
gem.add_development_dependency 'aruba', '0.5.3'
|
27
33
|
gem.add_development_dependency 'cucumber', '~> 2.0'
|
28
34
|
gem.add_development_dependency 'mocha', '>= 0.14.0'
|
29
35
|
gem.add_development_dependency 'chef', '>= 10.16.0' unless is_jruby
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vendorificator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.5.git.v0.4.0.17.g26d50d8
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Maciej Pasternacki
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-17 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: escape
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ! '>='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: thor
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ! '>='
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ! '>='
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: minigit
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ! '>='
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ! '>='
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: awesome_print
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ! '>='
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ! '>='
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,23 +69,20 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: aruba
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - '='
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version: 0.5.
|
75
|
+
version: 0.5.3
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - '='
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version: 0.5.
|
82
|
+
version: 0.5.3
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: cucumber
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: mocha
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ! '>='
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ! '>='
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: chef
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ! '>='
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,7 +118,6 @@ dependencies:
|
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ! '>='
|
140
123
|
- !ruby/object:Gem::Version
|
@@ -142,7 +125,6 @@ dependencies:
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: berkshelf
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - ! '>='
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - ! '>='
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,7 +139,6 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: vcr
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
143
|
- - ! '>='
|
164
144
|
- !ruby/object:Gem::Version
|
@@ -166,7 +146,6 @@ dependencies:
|
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
150
|
- - ! '>='
|
172
151
|
- !ruby/object:Gem::Version
|
@@ -174,7 +153,6 @@ dependencies:
|
|
174
153
|
- !ruby/object:Gem::Dependency
|
175
154
|
name: webmock
|
176
155
|
requirement: !ruby/object:Gem::Requirement
|
177
|
-
none: false
|
178
156
|
requirements:
|
179
157
|
- - ! '>='
|
180
158
|
- !ruby/object:Gem::Version
|
@@ -182,7 +160,6 @@ dependencies:
|
|
182
160
|
type: :development
|
183
161
|
prerelease: false
|
184
162
|
version_requirements: !ruby/object:Gem::Requirement
|
185
|
-
none: false
|
186
163
|
requirements:
|
187
164
|
- - ! '>='
|
188
165
|
- !ruby/object:Gem::Version
|
@@ -190,7 +167,6 @@ dependencies:
|
|
190
167
|
- !ruby/object:Gem::Dependency
|
191
168
|
name: wrong
|
192
169
|
requirement: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
170
|
requirements:
|
195
171
|
- - ! '>='
|
196
172
|
- !ruby/object:Gem::Version
|
@@ -198,7 +174,6 @@ dependencies:
|
|
198
174
|
type: :development
|
199
175
|
prerelease: false
|
200
176
|
version_requirements: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
177
|
requirements:
|
203
178
|
- - ! '>='
|
204
179
|
- !ruby/object:Gem::Version
|
@@ -206,7 +181,6 @@ dependencies:
|
|
206
181
|
- !ruby/object:Gem::Dependency
|
207
182
|
name: rake
|
208
183
|
requirement: !ruby/object:Gem::Requirement
|
209
|
-
none: false
|
210
184
|
requirements:
|
211
185
|
- - ! '>='
|
212
186
|
- !ruby/object:Gem::Version
|
@@ -214,7 +188,6 @@ dependencies:
|
|
214
188
|
type: :development
|
215
189
|
prerelease: false
|
216
190
|
version_requirements: !ruby/object:Gem::Requirement
|
217
|
-
none: false
|
218
191
|
requirements:
|
219
192
|
- - ! '>='
|
220
193
|
- !ruby/object:Gem::Version
|
@@ -222,7 +195,6 @@ dependencies:
|
|
222
195
|
- !ruby/object:Gem::Dependency
|
223
196
|
name: simplecov
|
224
197
|
requirement: !ruby/object:Gem::Requirement
|
225
|
-
none: false
|
226
198
|
requirements:
|
227
199
|
- - ! '>='
|
228
200
|
- !ruby/object:Gem::Version
|
@@ -230,7 +202,6 @@ dependencies:
|
|
230
202
|
type: :development
|
231
203
|
prerelease: false
|
232
204
|
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
205
|
requirements:
|
235
206
|
- - ! '>='
|
236
207
|
- !ruby/object:Gem::Version
|
@@ -238,7 +209,6 @@ dependencies:
|
|
238
209
|
- !ruby/object:Gem::Dependency
|
239
210
|
name: minitest
|
240
211
|
requirement: !ruby/object:Gem::Requirement
|
241
|
-
none: false
|
242
212
|
requirements:
|
243
213
|
- - ~>
|
244
214
|
- !ruby/object:Gem::Version
|
@@ -246,7 +216,6 @@ dependencies:
|
|
246
216
|
type: :development
|
247
217
|
prerelease: false
|
248
218
|
version_requirements: !ruby/object:Gem::Requirement
|
249
|
-
none: false
|
250
219
|
requirements:
|
251
220
|
- - ~>
|
252
221
|
- !ruby/object:Gem::Version
|
@@ -360,33 +329,26 @@ files:
|
|
360
329
|
- vendorificator.gemspec
|
361
330
|
homepage: https://github.com/3ofcoins/vendorificator/
|
362
331
|
licenses: []
|
332
|
+
metadata: {}
|
363
333
|
post_install_message:
|
364
334
|
rdoc_options: []
|
365
335
|
require_paths:
|
366
336
|
- lib
|
367
337
|
required_ruby_version: !ruby/object:Gem::Requirement
|
368
|
-
none: false
|
369
338
|
requirements:
|
370
339
|
- - ! '>='
|
371
340
|
- !ruby/object:Gem::Version
|
372
341
|
version: '0'
|
373
|
-
segments:
|
374
|
-
- 0
|
375
|
-
hash: -228954601075819929
|
376
342
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
377
|
-
none: false
|
378
343
|
requirements:
|
379
|
-
- - ! '
|
344
|
+
- - ! '>'
|
380
345
|
- !ruby/object:Gem::Version
|
381
|
-
version:
|
382
|
-
segments:
|
383
|
-
- 0
|
384
|
-
hash: -228954601075819929
|
346
|
+
version: 1.3.1
|
385
347
|
requirements: []
|
386
348
|
rubyforge_project:
|
387
|
-
rubygems_version:
|
349
|
+
rubygems_version: 2.0.5
|
388
350
|
signing_key:
|
389
|
-
specification_version:
|
351
|
+
specification_version: 4
|
390
352
|
summary: Integrate third-party vendor modules into your git repository
|
391
353
|
test_files:
|
392
354
|
- features/chef_cookbook.feature
|