berkshelf 3.1.5 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/berkshelf.gemspec +6 -5
- data/features/commands/search.feature +2 -2
- data/features/commands/vendor.feature +6 -2
- data/features/commands/verify.feature +29 -0
- data/features/config.feature +13 -48
- data/features/step_definitions/filesystem_steps.rb +2 -2
- data/features/step_definitions/gem_steps.rb +3 -1
- data/features/step_definitions/utility_steps.rb +2 -2
- data/generator_files/Vagrantfile.erb +30 -30
- data/generator_files/metadata.rb.erb +0 -1
- data/lib/berkshelf.rb +5 -2
- data/lib/berkshelf/berksfile.rb +41 -41
- data/lib/berkshelf/cli.rb +11 -1
- data/lib/berkshelf/community_rest.rb +1 -0
- data/lib/berkshelf/config.rb +18 -4
- data/lib/berkshelf/cookbook_store.rb +1 -1
- data/lib/berkshelf/downloader.rb +4 -0
- data/lib/berkshelf/errors.rb +0 -1
- data/lib/berkshelf/file_syncer.rb +134 -0
- data/lib/berkshelf/locations/base.rb +6 -1
- data/lib/berkshelf/locations/git.rb +2 -2
- data/lib/berkshelf/lockfile.rb +14 -2
- data/lib/berkshelf/uploader.rb +10 -17
- data/lib/berkshelf/validator.rb +37 -0
- data/lib/berkshelf/version.rb +1 -1
- data/lib/berkshelf/visualizer.rb +13 -6
- data/spec/spec_helper.rb +1 -1
- data/spec/support/kitchen.rb +3 -1
- data/spec/support/matchers/file_system_matchers.rb +1 -1
- data/spec/support/matchers/filepath_matchers.rb +38 -2
- data/spec/support/shared_examples/formatter.rb +7 -7
- data/spec/unit/berkshelf/berksfile_spec.rb +51 -21
- data/spec/unit/berkshelf/cached_cookbook_spec.rb +5 -5
- data/spec/unit/berkshelf/cli_spec.rb +1 -1
- data/spec/unit/berkshelf/community_rest_spec.rb +12 -12
- data/spec/unit/berkshelf/config_spec.rb +4 -4
- data/spec/unit/berkshelf/cookbook_generator_spec.rb +2 -2
- data/spec/unit/berkshelf/cookbook_store_spec.rb +6 -6
- data/spec/unit/berkshelf/core_ext/file_utils_spec.rb +3 -3
- data/spec/unit/berkshelf/core_ext/pathname_spec.rb +23 -6
- data/spec/unit/berkshelf/dependency_spec.rb +4 -4
- data/spec/unit/berkshelf/downloader_spec.rb +5 -1
- data/spec/unit/berkshelf/errors_spec.rb +1 -1
- data/spec/unit/berkshelf/file_syncer_spec.rb +206 -0
- data/spec/unit/berkshelf/init_generator_spec.rb +19 -22
- data/spec/unit/berkshelf/installer_spec.rb +6 -6
- data/spec/unit/berkshelf/locations/base_spec.rb +17 -8
- data/spec/unit/berkshelf/locations/git_spec.rb +34 -34
- data/spec/unit/berkshelf/locations/path_spec.rb +3 -3
- data/spec/unit/berkshelf/lockfile_parser_spec.rb +1 -1
- data/spec/unit/berkshelf/lockfile_spec.rb +50 -36
- data/spec/unit/berkshelf/packager_spec.rb +6 -4
- data/spec/unit/berkshelf/resolver/graph_spec.rb +3 -3
- data/spec/unit/berkshelf/resolver_spec.rb +3 -3
- data/spec/unit/berkshelf/shell_spec.rb +30 -24
- data/spec/unit/berkshelf/uploader_spec.rb +10 -36
- data/spec/unit/berkshelf/validator_spec.rb +30 -0
- data/spec/unit/berkshelf/visualizer_spec.rb +17 -2
- metadata +34 -15
- data/lib/berkshelf/mixin/dsl_eval.rb +0 -58
- data/spec/unit/berkshelf/mixin/dsl_eval_spec.rb +0 -55
@@ -4,14 +4,16 @@ describe Berkshelf::Packager do
|
|
4
4
|
let(:target) { tmp_path.join("cookbooks.tar.gz").to_s }
|
5
5
|
subject { described_class.new(target) }
|
6
6
|
|
7
|
-
|
7
|
+
it 'has the correct out_file' do
|
8
|
+
expect(subject.out_file).to eq(target)
|
9
|
+
end
|
8
10
|
|
9
11
|
describe "#run" do
|
10
12
|
let(:cookbooks) { fixtures_path.join("cookbooks") }
|
11
13
|
|
12
14
|
it "writes a tar to the #out_file" do
|
13
15
|
subject.run(cookbooks)
|
14
|
-
expect(File.exist?(subject.out_file)).to
|
16
|
+
expect(File.exist?(subject.out_file)).to be(true)
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
@@ -19,7 +21,7 @@ describe Berkshelf::Packager do
|
|
19
21
|
let(:out_dir) { File.dirname(target) }
|
20
22
|
|
21
23
|
context "when the out_file's directory is not writable" do
|
22
|
-
before { File.
|
24
|
+
before { allow(File).to receive(:directory?).with(out_dir).and_return(false) }
|
23
25
|
|
24
26
|
it "raises an error" do
|
25
27
|
expect { subject.validate! }.to raise_error(Berkshelf::PackageError,
|
@@ -28,7 +30,7 @@ describe Berkshelf::Packager do
|
|
28
30
|
end
|
29
31
|
|
30
32
|
context "when the out_file's directory is not a directory" do
|
31
|
-
before { File.
|
33
|
+
before { allow(File).to receive(:writable?).with(out_dir).and_return(false) }
|
32
34
|
|
33
35
|
it "raises an error" do
|
34
36
|
expect { subject.validate! }.to raise_error(Berkshelf::PackageError,
|
@@ -14,12 +14,12 @@ describe Berkshelf::Resolver::Graph, :not_supported_on_windows do
|
|
14
14
|
|
15
15
|
it "adds each dependency to the graph" do
|
16
16
|
subject.populate(sources)
|
17
|
-
expect(subject.artifacts).to
|
17
|
+
expect(subject.artifacts.size).to eq(3)
|
18
18
|
end
|
19
19
|
|
20
20
|
it "adds the dependencies of each dependency to the graph" do
|
21
21
|
subject.populate(sources)
|
22
|
-
expect(subject.artifact("ruby", "1.0.0").dependencies).to
|
22
|
+
expect(subject.artifact("ruby", "1.0.0").dependencies.size).to eq(1)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -38,7 +38,7 @@ describe Berkshelf::Resolver::Graph, :not_supported_on_windows do
|
|
38
38
|
end
|
39
39
|
|
40
40
|
it "contains the entire universe of dependencies" do
|
41
|
-
expect(subject.universe(sources)).to
|
41
|
+
expect(subject.universe(sources).size).to eq(2)
|
42
42
|
end
|
43
43
|
end
|
44
44
|
end
|
@@ -22,7 +22,7 @@ describe Berkshelf::Resolver do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it 'raises a DuplicateDemand exception if a demand of the same name is added' do
|
25
|
-
subject.
|
25
|
+
expect(subject).to receive(:has_demand?).with(demand).and_return(true)
|
26
26
|
|
27
27
|
expect {
|
28
28
|
subject.add_demand(demand)
|
@@ -50,11 +50,11 @@ describe Berkshelf::Resolver do
|
|
50
50
|
before { subject.add_demand(demand) }
|
51
51
|
|
52
52
|
it 'returns true if the demand exists' do
|
53
|
-
expect(subject.has_demand?(demand.name)).to
|
53
|
+
expect(subject.has_demand?(demand.name)).to be(true)
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'returns false if the demand does not exist' do
|
57
|
-
expect(subject.has_demand?('non-existent')).to
|
57
|
+
expect(subject.has_demand?('non-existent')).to be(false)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -6,44 +6,48 @@ module Berkshelf
|
|
6
6
|
let(:stderr) { double('stderr') }
|
7
7
|
|
8
8
|
before do
|
9
|
-
described_class.
|
10
|
-
|
9
|
+
allow_any_instance_of(described_class).to receive(:stdout)
|
10
|
+
.and_return(stdout)
|
11
|
+
|
12
|
+
allow_any_instance_of(described_class).to receive(:stderr)
|
13
|
+
.and_return(stderr)
|
11
14
|
end
|
12
15
|
|
13
16
|
describe '#mute!' do
|
14
17
|
it 'sets @mute to true' do
|
15
18
|
subject.mute!
|
16
|
-
expect(subject.instance_variable_get(:@mute)).to
|
19
|
+
expect(subject.instance_variable_get(:@mute)).to be(true)
|
17
20
|
end
|
18
21
|
end
|
19
22
|
|
20
23
|
describe '#unmute!' do
|
21
24
|
it 'sets @mute to false' do
|
22
25
|
subject.unmute!
|
23
|
-
expect(subject.instance_variable_get(:@mute)).to
|
26
|
+
expect(subject.instance_variable_get(:@mute)).to be(false)
|
24
27
|
end
|
25
28
|
end
|
26
29
|
|
27
30
|
describe '#say' do
|
28
31
|
context 'when quiet?' do
|
29
32
|
before do
|
30
|
-
subject.
|
33
|
+
allow(subject).to receive(:quiet?).and_return(true)
|
31
34
|
end
|
32
35
|
|
33
36
|
it 'does not output anything', :not_supported_on_windows do
|
34
|
-
stdout.
|
37
|
+
expect(stdout).to_not receive(:print)
|
38
|
+
expect(stdout).to_not receive(:puts)
|
35
39
|
subject.say 'message'
|
36
40
|
end
|
37
41
|
end
|
38
42
|
|
39
43
|
context 'with not quiet?' do
|
40
44
|
before do
|
41
|
-
subject.
|
45
|
+
allow(subject).to receive(:quiet?).and_return(false)
|
42
46
|
end
|
43
47
|
|
44
48
|
it 'prints to stdout' do
|
45
|
-
stdout.
|
46
|
-
stdout.
|
49
|
+
expect(stdout).to receive(:print).once
|
50
|
+
expect(stdout).to receive(:flush).once
|
47
51
|
subject.say 'message'
|
48
52
|
end
|
49
53
|
end
|
@@ -52,23 +56,24 @@ module Berkshelf
|
|
52
56
|
describe '#say_status' do
|
53
57
|
context 'when quiet?' do
|
54
58
|
before do
|
55
|
-
subject.
|
59
|
+
allow(subject).to receive(:quiet?).and_return(true)
|
56
60
|
end
|
57
61
|
|
58
62
|
it 'does not output anything' do
|
59
|
-
stdout.
|
63
|
+
expect(stdout).to_not receive(:print)
|
64
|
+
expect(stdout).to_not receive(:puts)
|
60
65
|
subject.say_status 5, 'message'
|
61
66
|
end
|
62
67
|
end
|
63
68
|
|
64
69
|
context 'with not quiet?' do
|
65
70
|
before do
|
66
|
-
subject.
|
71
|
+
allow(subject).to receive(:quiet?).and_return(false)
|
67
72
|
end
|
68
73
|
|
69
74
|
it 'prints to stdout' do
|
70
|
-
stdout.
|
71
|
-
stdout.
|
75
|
+
expect(stdout).to receive(:print).once
|
76
|
+
expect(stdout).to receive(:flush).once
|
72
77
|
subject.say_status 5, 'message'
|
73
78
|
end
|
74
79
|
end
|
@@ -77,23 +82,24 @@ module Berkshelf
|
|
77
82
|
describe '#warn' do
|
78
83
|
context 'when quiet?' do
|
79
84
|
before do
|
80
|
-
subject.
|
85
|
+
allow(subject).to receive(:quiet?).and_return(true)
|
81
86
|
end
|
82
87
|
|
83
88
|
it 'does not output anything' do
|
84
|
-
stdout.
|
89
|
+
expect(stdout).to_not receive(:print)
|
90
|
+
expect(stdout).to_not receive(:puts)
|
85
91
|
subject.warn 'warning'
|
86
92
|
end
|
87
93
|
end
|
88
94
|
|
89
95
|
context 'with not quiet?' do
|
90
96
|
before do
|
91
|
-
subject.
|
97
|
+
allow(subject).to receive(:quiet?).and_return(false)
|
92
98
|
end
|
93
99
|
|
94
100
|
it 'calls #say with yellow coloring' do
|
95
|
-
stdout.
|
96
|
-
stdout.
|
101
|
+
expect(stdout).to receive(:print).once
|
102
|
+
expect(stdout).to receive(:flush).once
|
97
103
|
subject.warn 'warning'
|
98
104
|
end
|
99
105
|
end
|
@@ -102,26 +108,26 @@ module Berkshelf
|
|
102
108
|
context '#error' do
|
103
109
|
context 'when quiet?' do
|
104
110
|
before do
|
105
|
-
subject.
|
111
|
+
allow(subject).to receive(:quiet?).and_return(true)
|
106
112
|
end
|
107
113
|
|
108
114
|
it "outputs an error message", :not_supported_on_windows do
|
109
|
-
stderr.
|
115
|
+
expect(stderr).to receive(:puts)
|
110
116
|
subject.error 'error!'
|
111
117
|
end
|
112
118
|
end
|
113
119
|
|
114
120
|
context 'with not quiet?' do
|
115
121
|
before do
|
116
|
-
subject.
|
122
|
+
allow(subject).to receive(:quiet?).and_return(false)
|
117
123
|
end
|
118
124
|
|
119
125
|
it 'prints to stderr' do
|
120
|
-
stderr.
|
126
|
+
expect(stderr).to receive(:puts)
|
127
|
+
.with(windows? ? "error!" : "\e[31merror!\e[0m")
|
121
128
|
subject.error 'error!'
|
122
129
|
end
|
123
130
|
end
|
124
131
|
end
|
125
132
|
end
|
126
|
-
|
127
133
|
end
|
@@ -33,8 +33,8 @@ module Berkshelf
|
|
33
33
|
it 'saves the options' do
|
34
34
|
instance = Uploader.new(berksfile, force: true, validate: false)
|
35
35
|
options = instance.options
|
36
|
-
expect(options[:force]).to
|
37
|
-
expect(options[:validate]).to
|
36
|
+
expect(options[:force]).to be(true)
|
37
|
+
expect(options[:validate]).to be(false)
|
38
38
|
end
|
39
39
|
|
40
40
|
it 'saves the names' do
|
@@ -43,35 +43,6 @@ module Berkshelf
|
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
46
|
-
describe '#validate_files!' do
|
47
|
-
before { Uploader.send(:public, :validate_files!) }
|
48
|
-
|
49
|
-
let(:cookbook) { double('cookbook', cookbook_name: 'cookbook', path: 'path') }
|
50
|
-
|
51
|
-
it 'raises an error when the cookbook has spaces in the files' do
|
52
|
-
Dir.stub(:glob).and_return(['/there are/spaces/in this/recipes/default.rb'])
|
53
|
-
expect {
|
54
|
-
subject.validate_files!(cookbook)
|
55
|
-
}.to raise_error
|
56
|
-
end
|
57
|
-
|
58
|
-
it 'does not raise an error when the cookbook is valid' do
|
59
|
-
Dir.stub(:glob).and_return(['/there-are/no-spaces/in-this/recipes/default.rb'])
|
60
|
-
expect {
|
61
|
-
subject.validate_files!(cookbook)
|
62
|
-
}.to_not raise_error
|
63
|
-
end
|
64
|
-
|
65
|
-
it 'does not raise an exception with spaces in the path' do
|
66
|
-
Dir.stub(:glob).and_return(['/there are/spaces/in this/recipes/default.rb'])
|
67
|
-
Pathname.any_instance.stub(:dirname).and_return('/there are/spaces/in this')
|
68
|
-
|
69
|
-
expect {
|
70
|
-
subject.validate_files!(cookbook)
|
71
|
-
}.to_not raise_error
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
46
|
describe '#run' do
|
76
47
|
let(:options) { Hash.new }
|
77
48
|
|
@@ -85,13 +56,16 @@ module Berkshelf
|
|
85
56
|
cookbook_copyright: 'user',
|
86
57
|
cookbook_email: 'user@example.com',
|
87
58
|
cookbook_license: 'apachev2',
|
59
|
+
knife: {
|
60
|
+
chef_guard: false
|
61
|
+
}
|
88
62
|
)
|
89
63
|
end
|
90
64
|
|
91
65
|
let(:berkshelf_config) do
|
92
66
|
double(Config,
|
93
67
|
ssl: double(verify: true),
|
94
|
-
chef: chef_config
|
68
|
+
chef: chef_config
|
95
69
|
)
|
96
70
|
end
|
97
71
|
|
@@ -106,11 +80,11 @@ module Berkshelf
|
|
106
80
|
end
|
107
81
|
|
108
82
|
before do
|
109
|
-
Berkshelf.
|
83
|
+
allow(Berkshelf).to receive(:config).and_return(berkshelf_config)
|
110
84
|
end
|
111
85
|
|
112
86
|
context 'when there is no value for :chef_server_url' do
|
113
|
-
before { chef_config.
|
87
|
+
before { allow(chef_config).to receive_messages(chef_server_url: nil) }
|
114
88
|
let(:message) { 'Missing required attribute in your Berkshelf configuration: chef.server_url' }
|
115
89
|
|
116
90
|
it 'raises an error' do
|
@@ -119,7 +93,7 @@ module Berkshelf
|
|
119
93
|
end
|
120
94
|
|
121
95
|
context 'when there is no value for :client_name' do
|
122
|
-
before { chef_config.
|
96
|
+
before { allow(chef_config).to receive_messages(node_name: nil) }
|
123
97
|
let(:message) { 'Missing required attribute in your Berkshelf configuration: chef.node_name' }
|
124
98
|
|
125
99
|
it 'raises an error' do
|
@@ -128,7 +102,7 @@ module Berkshelf
|
|
128
102
|
end
|
129
103
|
|
130
104
|
context 'when there is no value for :client_key' do
|
131
|
-
before { chef_config.
|
105
|
+
before { allow(chef_config).to receive_messages(client_key: nil) }
|
132
106
|
let(:message) { 'Missing required attribute in your Berkshelf configuration: chef.client_key' }
|
133
107
|
|
134
108
|
it 'raises an error' do
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Berkshelf::Validator do
|
4
|
+
describe '#validate_files' do
|
5
|
+
let(:cookbook) { double('cookbook', cookbook_name: 'cookbook', path: 'path') }
|
6
|
+
|
7
|
+
it 'raises an error when the cookbook has spaces in the files' do
|
8
|
+
allow(Dir).to receive(:glob).and_return(['/there are/spaces/in this/recipes/default.rb'])
|
9
|
+
expect {
|
10
|
+
subject.validate_files(cookbook)
|
11
|
+
}.to raise_error
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'does not raise an error when the cookbook is valid' do
|
15
|
+
allow(Dir).to receive(:glob).and_return(['/there-are/no-spaces/in-this/recipes/default.rb'])
|
16
|
+
expect {
|
17
|
+
subject.validate_files(cookbook)
|
18
|
+
}.to_not raise_error
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'does not raise an exception with spaces in the path' do
|
22
|
+
allow(Dir).to receive(:glob).and_return(['/there are/spaces/in this/recipes/default.rb'])
|
23
|
+
allow_any_instance_of(Pathname).to receive(:dirname).and_return('/there are/spaces/in this')
|
24
|
+
|
25
|
+
expect {
|
26
|
+
subject.validate_files(cookbook)
|
27
|
+
}.to_not raise_error
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'rspec'
|
1
2
|
require 'spec_helper'
|
2
3
|
|
3
4
|
module Berkshelf
|
@@ -5,9 +6,12 @@ module Berkshelf
|
|
5
6
|
describe '#to_png' do
|
6
7
|
context 'when graphviz is not installed' do
|
7
8
|
before do
|
8
|
-
Berkshelf.
|
9
|
+
allow(Berkshelf).to receive(:which)
|
9
10
|
.with('dot')
|
10
11
|
.and_return(nil)
|
12
|
+
allow(Berkshelf).to receive(:which)
|
13
|
+
.with('dot.exe')
|
14
|
+
.and_return(nil)
|
11
15
|
end
|
12
16
|
|
13
17
|
it 'raises a GraphvizNotInstalled exception' do
|
@@ -18,13 +22,24 @@ module Berkshelf
|
|
18
22
|
context 'when the graphviz command fails', :graphviz do
|
19
23
|
before do
|
20
24
|
response = double(success?: false, stderr: 'Something happened!')
|
21
|
-
subject.
|
25
|
+
allow(subject).to receive(:shell_out).and_return(response)
|
22
26
|
end
|
23
27
|
|
24
28
|
it 'raises a GraphvizCommandFailed exception' do
|
25
29
|
expect { subject.to_png }.to raise_error(GraphvizCommandFailed)
|
26
30
|
end
|
27
31
|
end
|
32
|
+
|
33
|
+
context 'when the graphviz command succeeds', :graphviz do
|
34
|
+
it 'builds a png from a Lockfile' do
|
35
|
+
outfile = tmp_path.join('test-graph.png').to_s
|
36
|
+
lockfile = Lockfile.from_file(fixtures_path.join('lockfiles/default.lock').to_s)
|
37
|
+
|
38
|
+
Visualizer.from_lockfile(lockfile).to_png(outfile)
|
39
|
+
|
40
|
+
expect(File.exists?(outfile)).to be true
|
41
|
+
end
|
42
|
+
end
|
28
43
|
end
|
29
44
|
end
|
30
45
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: berkshelf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jamie Winsor
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2014-
|
15
|
+
date: 2014-10-29 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: addressable
|
@@ -84,6 +84,20 @@ dependencies:
|
|
84
84
|
- - "~>"
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: '0.1'
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
name: cleanroom
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - "~>"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '1.0'
|
94
|
+
type: :runtime
|
95
|
+
prerelease: false
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '1.0'
|
87
101
|
- !ruby/object:Gem::Dependency
|
88
102
|
name: faraday
|
89
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,14 +174,14 @@ dependencies:
|
|
160
174
|
requirements:
|
161
175
|
- - "~>"
|
162
176
|
- !ruby/object:Gem::Version
|
163
|
-
version: '0.
|
177
|
+
version: '0.19'
|
164
178
|
type: :runtime
|
165
179
|
prerelease: false
|
166
180
|
version_requirements: !ruby/object:Gem::Requirement
|
167
181
|
requirements:
|
168
182
|
- - "~>"
|
169
183
|
- !ruby/object:Gem::Version
|
170
|
-
version: '0.
|
184
|
+
version: '0.19'
|
171
185
|
- !ruby/object:Gem::Dependency
|
172
186
|
name: octokit
|
173
187
|
requirement: !ruby/object:Gem::Requirement
|
@@ -188,42 +202,42 @@ dependencies:
|
|
188
202
|
requirements:
|
189
203
|
- - "~>"
|
190
204
|
- !ruby/object:Gem::Version
|
191
|
-
version: 0.16.0
|
205
|
+
version: 0.16.0
|
192
206
|
type: :runtime
|
193
207
|
prerelease: false
|
194
208
|
version_requirements: !ruby/object:Gem::Requirement
|
195
209
|
requirements:
|
196
210
|
- - "~>"
|
197
211
|
- !ruby/object:Gem::Version
|
198
|
-
version: 0.16.0
|
212
|
+
version: 0.16.0
|
199
213
|
- !ruby/object:Gem::Dependency
|
200
214
|
name: celluloid-io
|
201
215
|
requirement: !ruby/object:Gem::Requirement
|
202
216
|
requirements:
|
203
217
|
- - "~>"
|
204
218
|
- !ruby/object:Gem::Version
|
205
|
-
version: 0.16.
|
219
|
+
version: 0.16.1
|
206
220
|
type: :runtime
|
207
221
|
prerelease: false
|
208
222
|
version_requirements: !ruby/object:Gem::Requirement
|
209
223
|
requirements:
|
210
224
|
- - "~>"
|
211
225
|
- !ruby/object:Gem::Version
|
212
|
-
version: 0.16.
|
226
|
+
version: 0.16.1
|
213
227
|
- !ruby/object:Gem::Dependency
|
214
228
|
name: aruba
|
215
229
|
requirement: !ruby/object:Gem::Requirement
|
216
230
|
requirements:
|
217
231
|
- - "~>"
|
218
232
|
- !ruby/object:Gem::Version
|
219
|
-
version: '0.
|
233
|
+
version: '0.6'
|
220
234
|
type: :development
|
221
235
|
prerelease: false
|
222
236
|
version_requirements: !ruby/object:Gem::Requirement
|
223
237
|
requirements:
|
224
238
|
- - "~>"
|
225
239
|
- !ruby/object:Gem::Version
|
226
|
-
version: '0.
|
240
|
+
version: '0.6'
|
227
241
|
- !ruby/object:Gem::Dependency
|
228
242
|
name: chef-zero
|
229
243
|
requirement: !ruby/object:Gem::Requirement
|
@@ -272,14 +286,14 @@ dependencies:
|
|
272
286
|
requirements:
|
273
287
|
- - "~>"
|
274
288
|
- !ruby/object:Gem::Version
|
275
|
-
version: '
|
289
|
+
version: '3.0'
|
276
290
|
type: :development
|
277
291
|
prerelease: false
|
278
292
|
version_requirements: !ruby/object:Gem::Requirement
|
279
293
|
requirements:
|
280
294
|
- - "~>"
|
281
295
|
- !ruby/object:Gem::Version
|
282
|
-
version: '
|
296
|
+
version: '3.0'
|
283
297
|
- !ruby/object:Gem::Dependency
|
284
298
|
name: spork
|
285
299
|
requirement: !ruby/object:Gem::Requirement
|
@@ -378,6 +392,7 @@ files:
|
|
378
392
|
- features/commands/update.feature
|
379
393
|
- features/commands/upload.feature
|
380
394
|
- features/commands/vendor.feature
|
395
|
+
- features/commands/verify.feature
|
381
396
|
- features/commands/viz.feature
|
382
397
|
- features/community_site.feature
|
383
398
|
- features/config.feature
|
@@ -433,6 +448,7 @@ files:
|
|
433
448
|
- lib/berkshelf/dependency.rb
|
434
449
|
- lib/berkshelf/downloader.rb
|
435
450
|
- lib/berkshelf/errors.rb
|
451
|
+
- lib/berkshelf/file_syncer.rb
|
436
452
|
- lib/berkshelf/formatters/base.rb
|
437
453
|
- lib/berkshelf/formatters/human.rb
|
438
454
|
- lib/berkshelf/formatters/json.rb
|
@@ -446,7 +462,6 @@ files:
|
|
446
462
|
- lib/berkshelf/locations/path.rb
|
447
463
|
- lib/berkshelf/lockfile.rb
|
448
464
|
- lib/berkshelf/logger.rb
|
449
|
-
- lib/berkshelf/mixin/dsl_eval.rb
|
450
465
|
- lib/berkshelf/mixin/git.rb
|
451
466
|
- lib/berkshelf/mixin/logging.rb
|
452
467
|
- lib/berkshelf/packager.rb
|
@@ -459,6 +474,7 @@ files:
|
|
459
474
|
- lib/berkshelf/thor_ext.rb
|
460
475
|
- lib/berkshelf/thor_ext/hash_with_indifferent_access.rb
|
461
476
|
- lib/berkshelf/uploader.rb
|
477
|
+
- lib/berkshelf/validator.rb
|
462
478
|
- lib/berkshelf/version.rb
|
463
479
|
- lib/berkshelf/visualizer.rb
|
464
480
|
- spec/config/berkshelf.pem
|
@@ -500,6 +516,7 @@ files:
|
|
500
516
|
- spec/unit/berkshelf/dependency_spec.rb
|
501
517
|
- spec/unit/berkshelf/downloader_spec.rb
|
502
518
|
- spec/unit/berkshelf/errors_spec.rb
|
519
|
+
- spec/unit/berkshelf/file_syncer_spec.rb
|
503
520
|
- spec/unit/berkshelf/formatters/base_spec.rb
|
504
521
|
- spec/unit/berkshelf/formatters/human_spec.rb
|
505
522
|
- spec/unit/berkshelf/formatters/json_spec.rb
|
@@ -513,7 +530,6 @@ files:
|
|
513
530
|
- spec/unit/berkshelf/lockfile_parser_spec.rb
|
514
531
|
- spec/unit/berkshelf/lockfile_spec.rb
|
515
532
|
- spec/unit/berkshelf/logger_spec.rb
|
516
|
-
- spec/unit/berkshelf/mixin/dsl_eval_spec.rb
|
517
533
|
- spec/unit/berkshelf/mixin/logging_spec.rb
|
518
534
|
- spec/unit/berkshelf/packager_spec.rb
|
519
535
|
- spec/unit/berkshelf/resolver/graph_spec.rb
|
@@ -522,6 +538,7 @@ files:
|
|
522
538
|
- spec/unit/berkshelf/source_spec.rb
|
523
539
|
- spec/unit/berkshelf/source_uri_spec.rb
|
524
540
|
- spec/unit/berkshelf/uploader_spec.rb
|
541
|
+
- spec/unit/berkshelf/validator_spec.rb
|
525
542
|
- spec/unit/berkshelf/visualizer_spec.rb
|
526
543
|
- spec/unit/berkshelf_spec.rb
|
527
544
|
homepage: http://berkshelf.com
|
@@ -567,6 +584,7 @@ test_files:
|
|
567
584
|
- features/commands/update.feature
|
568
585
|
- features/commands/upload.feature
|
569
586
|
- features/commands/vendor.feature
|
587
|
+
- features/commands/verify.feature
|
570
588
|
- features/commands/viz.feature
|
571
589
|
- features/community_site.feature
|
572
590
|
- features/config.feature
|
@@ -625,6 +643,7 @@ test_files:
|
|
625
643
|
- spec/unit/berkshelf/dependency_spec.rb
|
626
644
|
- spec/unit/berkshelf/downloader_spec.rb
|
627
645
|
- spec/unit/berkshelf/errors_spec.rb
|
646
|
+
- spec/unit/berkshelf/file_syncer_spec.rb
|
628
647
|
- spec/unit/berkshelf/formatters/base_spec.rb
|
629
648
|
- spec/unit/berkshelf/formatters/human_spec.rb
|
630
649
|
- spec/unit/berkshelf/formatters/json_spec.rb
|
@@ -638,7 +657,6 @@ test_files:
|
|
638
657
|
- spec/unit/berkshelf/lockfile_parser_spec.rb
|
639
658
|
- spec/unit/berkshelf/lockfile_spec.rb
|
640
659
|
- spec/unit/berkshelf/logger_spec.rb
|
641
|
-
- spec/unit/berkshelf/mixin/dsl_eval_spec.rb
|
642
660
|
- spec/unit/berkshelf/mixin/logging_spec.rb
|
643
661
|
- spec/unit/berkshelf/packager_spec.rb
|
644
662
|
- spec/unit/berkshelf/resolver/graph_spec.rb
|
@@ -647,6 +665,7 @@ test_files:
|
|
647
665
|
- spec/unit/berkshelf/source_spec.rb
|
648
666
|
- spec/unit/berkshelf/source_uri_spec.rb
|
649
667
|
- spec/unit/berkshelf/uploader_spec.rb
|
668
|
+
- spec/unit/berkshelf/validator_spec.rb
|
650
669
|
- spec/unit/berkshelf/visualizer_spec.rb
|
651
670
|
- spec/unit/berkshelf_spec.rb
|
652
671
|
has_rdoc:
|