berkshelf 2.0.0.beta → 2.0.0

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.
Files changed (92) hide show
  1. data/CHANGELOG.md +19 -1
  2. data/CONTRIBUTING.md +1 -3
  3. data/Gemfile +0 -20
  4. data/Guardfile +3 -3
  5. data/LICENSE +6 -5
  6. data/README.md +1 -0
  7. data/Thorfile +48 -67
  8. data/berkshelf.gemspec +48 -37
  9. data/features/apply_command.feature +17 -11
  10. data/features/config.feature +11 -11
  11. data/features/configure_command.feature +8 -8
  12. data/features/contingent_command.feature +37 -8
  13. data/features/cookbook_command.feature +17 -14
  14. data/features/groups_install.feature +24 -20
  15. data/features/install_command.feature +24 -33
  16. data/features/licenses.feature +112 -0
  17. data/features/list_command.feature +17 -5
  18. data/features/lockfile.feature +307 -188
  19. data/features/outdated_command.feature +1 -4
  20. data/features/package_command.feature +41 -19
  21. data/features/shelf/list.feature +39 -0
  22. data/features/shelf/show.feature +152 -0
  23. data/features/shelf/uninstall.feature +103 -0
  24. data/features/show_command.feature +49 -17
  25. data/features/step_definitions/filesystem_steps.rb +12 -3
  26. data/features/step_definitions/utility_steps.rb +0 -1
  27. data/features/support/env.rb +11 -4
  28. data/features/update_command.feature +22 -10
  29. data/features/upload_command.feature +174 -127
  30. data/features/vendor_install.feature +6 -6
  31. data/generator_files/Berksfile.erb +1 -1
  32. data/generator_files/metadata.rb.erb +7 -7
  33. data/lib/berkshelf.rb +39 -27
  34. data/lib/berkshelf/base_generator.rb +2 -3
  35. data/lib/berkshelf/berksfile.rb +69 -17
  36. data/lib/berkshelf/cached_cookbook.rb +17 -1
  37. data/lib/berkshelf/chef.rb +2 -4
  38. data/lib/berkshelf/chef/config.rb +51 -75
  39. data/lib/berkshelf/chef/cookbook.rb +1 -2
  40. data/lib/berkshelf/chef/cookbook/chefignore.rb +1 -1
  41. data/lib/berkshelf/cli.rb +144 -194
  42. data/lib/berkshelf/command.rb +11 -12
  43. data/lib/berkshelf/commands/shelf.rb +130 -0
  44. data/lib/berkshelf/commands/test_command.rb +11 -0
  45. data/lib/berkshelf/community_rest.rb +1 -2
  46. data/lib/berkshelf/config.rb +14 -10
  47. data/lib/berkshelf/cookbook_generator.rb +30 -24
  48. data/lib/berkshelf/cookbook_source.rb +1 -1
  49. data/lib/berkshelf/cookbook_store.rb +0 -1
  50. data/lib/berkshelf/core_ext.rb +1 -1
  51. data/lib/berkshelf/core_ext/file.rb +1 -1
  52. data/lib/berkshelf/downloader.rb +3 -1
  53. data/lib/berkshelf/errors.rb +128 -53
  54. data/lib/berkshelf/formatters.rb +2 -6
  55. data/lib/berkshelf/formatters/human_readable.rb +8 -2
  56. data/lib/berkshelf/formatters/json.rb +7 -1
  57. data/lib/berkshelf/formatters/null.rb +0 -1
  58. data/lib/berkshelf/git.rb +16 -16
  59. data/lib/berkshelf/init_generator.rb +28 -26
  60. data/lib/berkshelf/location.rb +12 -11
  61. data/lib/berkshelf/locations/chef_api_location.rb +2 -2
  62. data/lib/berkshelf/locations/git_location.rb +0 -1
  63. data/lib/berkshelf/locations/github_location.rb +0 -1
  64. data/lib/berkshelf/locations/path_location.rb +1 -2
  65. data/lib/berkshelf/locations/site_location.rb +3 -2
  66. data/lib/berkshelf/lockfile.rb +29 -10
  67. data/lib/berkshelf/mixin/config.rb +155 -0
  68. data/lib/berkshelf/mixin/logging.rb +0 -1
  69. data/lib/berkshelf/mixin/shellout.rb +71 -0
  70. data/lib/berkshelf/resolver.rb +7 -4
  71. data/lib/berkshelf/test.rb +1 -3
  72. data/lib/berkshelf/ui.rb +8 -4
  73. data/lib/berkshelf/version.rb +1 -1
  74. data/lib/thor/monkies/shell.rb +0 -1
  75. data/spec/config/berkshelf.pem +27 -0
  76. data/spec/config/knife.rb +12 -0
  77. data/spec/config/validator.pem +27 -0
  78. data/spec/spec_helper.rb +4 -8
  79. data/spec/support/chef_api.rb +14 -9
  80. data/spec/support/chef_server.rb +3 -4
  81. data/spec/unit/berkshelf/berksfile_spec.rb +1 -1
  82. data/spec/unit/berkshelf/cookbook_generator_spec.rb +12 -6
  83. data/spec/unit/berkshelf/cookbook_source_spec.rb +13 -1
  84. data/spec/unit/berkshelf/init_generator_spec.rb +5 -0
  85. data/spec/unit/chef/config_spec.rb +9 -10
  86. metadata +216 -93
  87. data/features/info_command.feature +0 -39
  88. data/features/open_command.feature +0 -36
  89. data/lib/berkshelf/cli_commands/test_command.rb +0 -11
  90. data/lib/berkshelf/mixin.rb +0 -10
  91. data/lib/berkshelf/mixin/path_helpers.rb +0 -30
  92. data/spec/support/knife.rb +0 -18
@@ -24,7 +24,8 @@ module Berkshelf
24
24
  else
25
25
  ridley.cookbook.delete(name, version)
26
26
  end
27
- rescue Ridley::Errors::HTTPNotFound
27
+ rescue Ridley::Errors::HTTPNotFound,
28
+ Ridley::Errors::ResourceNotFound
28
29
  true
29
30
  end
30
31
 
@@ -36,7 +37,8 @@ module Berkshelf
36
37
  else
37
38
  !versions.find { |ver| ver == version }.nil?
38
39
  end
39
- rescue Ridley::Errors::HTTPNotFound
40
+ rescue Ridley::Errors::HTTPNotFound,
41
+ Ridley::Errors::ResourceNotFound
40
42
  false
41
43
  end
42
44
 
@@ -67,10 +69,13 @@ module Berkshelf
67
69
  FileUtils.touch(cookbook_path.join(file))
68
70
  end
69
71
 
70
- metadata = <<-EOF
71
- name "#{name}"
72
- version "#{version}"
73
- EOF
72
+ metadata = [].tap do |a|
73
+ a << "name '#{name}'"
74
+ a << "version '#{version}'"
75
+ a << "license '#{options[:license]}'" if options[:license]
76
+ a << "" # ensure newline
77
+ end.join("\n")
78
+
74
79
 
75
80
  if options[:dependencies]
76
81
  options[:dependencies].each do |name, constraint|
@@ -111,9 +116,9 @@ EOF
111
116
 
112
117
  def ridley
113
118
  @ridley ||= Ridley.new(
114
- server_url: Berkshelf::Chef::Config[:chef_server_url],
115
- client_name: Berkshelf::Chef::Config[:node_name],
116
- client_key: Berkshelf::Chef::Config[:client_key],
119
+ server_url: Berkshelf.chef_config[:chef_server_url],
120
+ client_name: Berkshelf.chef_config[:node_name],
121
+ client_key: Berkshelf.chef_config[:client_key],
117
122
  ssl: { verify: false }
118
123
  )
119
124
  end
@@ -14,15 +14,14 @@ module Berkshelf::RSpec
14
14
  end
15
15
 
16
16
  def server
17
- @server ||= ChefZero::Server.new(port: PORT, signals: false, log_requests: true)
17
+ @server ||= ChefZero::Server.new(port: PORT, generate_real_keys: false)
18
18
  end
19
19
 
20
20
  def server_url
21
- "http://localhost:#{PORT}"
21
+ (@server && @server.url) || "http://localhost:#{PORT}"
22
22
  end
23
23
 
24
24
  def start
25
- Thin::Logging.silent = true
26
25
  server.start_background
27
26
  server.on_response do |request, response|
28
27
  request_log << [ request, response ]
@@ -33,7 +32,7 @@ module Berkshelf::RSpec
33
32
  end
34
33
 
35
34
  def stop
36
- @server.stop if @server
35
+ @server.stop if running?
37
36
  end
38
37
 
39
38
  def running?
@@ -542,7 +542,7 @@ describe Berkshelf::Berksfile do
542
542
  it 'applys the locked_versions of the Lockfile sources to the given Chef environment' do
543
543
  subject.apply('berkshelf')
544
544
 
545
- environment = ::JSON.parse(chef_server.data['environments']['berkshelf'])
545
+ environment = ::JSON.parse(chef_server.data_store.get(['environments', 'berkshelf']))
546
546
  expect(environment['cookbook_versions']).to have(2).items
547
547
  expect(environment['cookbook_versions']['nginx']).to eq('1.2.3')
548
548
  expect(environment['cookbook_versions']['artifact']).to eq('1.4.0')
@@ -3,6 +3,11 @@ require 'spec_helper'
3
3
  describe Berkshelf::CookbookGenerator do
4
4
  let(:name) { 'sparkle_motion' }
5
5
  let(:target) { tmp_path.join(name) }
6
+ let(:kitchen_generator) { double('kitchen-generator', invoke_all: nil) }
7
+
8
+ before do
9
+ Kitchen::Generator::Init.stub(:new).with(any_args()).and_return(kitchen_generator)
10
+ end
6
11
 
7
12
  context 'with default options' do
8
13
  before do
@@ -39,11 +44,11 @@ describe Berkshelf::CookbookGenerator do
39
44
  contains 'Author:: YOUR_NAME (<YOUR_EMAIL>)'
40
45
  end
41
46
  file 'metadata.rb' do
42
- contains 'name "sparkle_motion"'
43
- contains 'maintainer "YOUR_NAME"'
44
- contains 'maintainer_email "YOUR_EMAIL"'
45
- contains 'license "All rights reserved"'
46
- contains 'description "Installs/Configures sparkle_motion"'
47
+ contains "name 'sparkle_motion'"
48
+ contains "maintainer 'YOUR_NAME'"
49
+ contains "maintainer_email 'YOUR_EMAIL'"
50
+ contains "license 'All rights reserved'"
51
+ contains "description 'Installs/Configures sparkle_motion'"
47
52
  end
48
53
  file 'Berksfile' do
49
54
  contains 'site :opscode'
@@ -57,6 +62,7 @@ describe Berkshelf::CookbookGenerator do
57
62
 
58
63
  context "given a 'maintainer_email' option" do
59
64
  before do
65
+ Kitchen::Generator::Init.stub(:new).with(any_args()).and_return(kitchen_generator)
60
66
  capture(:stdout) {
61
67
  Berkshelf::CookbookGenerator.new([target, name], maintainer_email: 'jamie@vialstudios.com').invoke_all
62
68
  }
@@ -66,7 +72,7 @@ describe Berkshelf::CookbookGenerator do
66
72
  email = email
67
73
  expect(target).to have_structure {
68
74
  file 'metadata.rb' do
69
- contains 'maintainer_email "jamie@vialstudios.com"'
75
+ contains "maintainer_email 'jamie@vialstudios.com'"
70
76
  end
71
77
  }
72
78
  end
@@ -293,7 +293,7 @@ describe Berkshelf::CookbookSource do
293
293
  end
294
294
 
295
295
  it 'includes the git url and ref' do
296
- location = double('git', uri: 'git://github.com/foo/bar.git', ref: 'abcd1234')
296
+ location = double('git', uri: 'git://github.com/foo/bar.git', ref: 'abcd1234', rel: nil)
297
297
  location.stub(:kind_of?).with(Berkshelf::SiteLocation).and_return(false)
298
298
  location.stub(:kind_of?).with(Berkshelf::GitLocation).and_return(true)
299
299
  subject.stub(:location).and_return(location)
@@ -304,6 +304,18 @@ describe Berkshelf::CookbookSource do
304
304
  expect(hash[:ref]).to eq('abcd1234')
305
305
  end
306
306
 
307
+ it 'includes the git url and rel' do
308
+ location = double('git', uri: 'git://github.com/foo/bar.git', ref: nil, rel: 'cookbooks/foo')
309
+ location.stub(:kind_of?).with(Berkshelf::SiteLocation).and_return(false)
310
+ location.stub(:kind_of?).with(Berkshelf::GitLocation).and_return(true)
311
+ subject.stub(:location).and_return(location)
312
+
313
+ expect(hash).to have_key(:git)
314
+ expect(hash[:git]).to eq('git://github.com/foo/bar.git')
315
+ expect(hash).to have_key(:rel)
316
+ expect(hash[:rel]).to eq('cookbooks/foo')
317
+ end
318
+
307
319
  it 'includes a relative path' do
308
320
  subject.instance_variable_set(:@options, { path: '~/Development/foo' })
309
321
 
@@ -3,6 +3,11 @@ require 'spec_helper'
3
3
  describe Berkshelf::InitGenerator, vcr: { record: :new_episodes, serialize_with: :json } do
4
4
  let(:target) { tmp_path.join("some_cookbook") }
5
5
  let(:resolver) { double('resolver') }
6
+ let(:kitchen_generator) { double('kitchen-generator', invoke_all: nil) }
7
+
8
+ before do
9
+ Kitchen::Generator::Init.stub(:new).with(any_args()).and_return(kitchen_generator)
10
+ end
6
11
 
7
12
  context 'with default options' do
8
13
  before do
@@ -1,32 +1,31 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Berkshelf::Chef::Config do
4
- describe '.path' do
4
+ describe '.location' do
5
5
  let(:path) { '/fake/path/for/.chef' }
6
6
  let(:config) { File.join(path, 'knife.rb') }
7
+ let(:location) { Berkshelf::Chef::Config.send(:location) }
7
8
 
8
9
  before do
9
10
  ENV.stub(:[]).and_return(nil)
10
11
 
11
12
  File.stub(:exists?).with(any_args()).and_return(false)
12
13
  File.stub(:exists?).with(config).and_return(true)
13
-
14
- Berkshelf::Chef::Config.instance_variable_set(:@path, nil)
15
14
  end
16
15
 
17
16
  it 'uses $BERKSHELF_CHEF_CONFIG' do
18
17
  ENV.stub(:[]).with('BERKSHELF_CHEF_CONFIG').and_return(config)
19
- expect(Berkshelf::Chef::Config.path).to eq(config)
18
+ expect(location).to eq(config)
20
19
  end
21
20
 
22
21
  it 'uses $KNIFE_HOME' do
23
22
  ENV.stub(:[]).with('KNIFE_HOME').and_return(path)
24
- expect(Berkshelf::Chef::Config.path).to eq(config)
23
+ expect(location).to eq(config)
25
24
  end
26
25
 
27
26
  it 'uses ::working_dir' do
28
27
  Berkshelf::Chef::Config.stub(:working_dir).and_return(path)
29
- expect(Berkshelf::Chef::Config.path).to eq(config)
28
+ expect(location).to eq(config)
30
29
  end
31
30
 
32
31
  context 'an ascending search' do
@@ -41,7 +40,7 @@ describe Berkshelf::Chef::Config do
41
40
  end
42
41
 
43
42
  it 'chooses the closest path' do
44
- expect(Berkshelf::Chef::Config.path).to eq('/fake/.chef/path/with/multiple/.chef/knife.rb')
43
+ expect(location).to eq('/fake/.chef/path/with/multiple/.chef/knife.rb')
45
44
  end
46
45
  end
47
46
 
@@ -55,7 +54,7 @@ describe Berkshelf::Chef::Config do
55
54
  end
56
55
 
57
56
  it 'uses the current directory' do
58
- expect(Berkshelf::Chef::Config.path).to eq('/fake/.chef/knife.rb')
57
+ expect(location).to eq('/fake/.chef/knife.rb')
59
58
  end
60
59
  end
61
60
 
@@ -69,14 +68,14 @@ describe Berkshelf::Chef::Config do
69
68
  end
70
69
 
71
70
  it 'uses the top-level directory' do
72
- expect(Berkshelf::Chef::Config.path).to eq('/.chef/knife.rb')
71
+ expect(location).to eq('/.chef/knife.rb')
73
72
  end
74
73
  end
75
74
  end
76
75
 
77
76
  it 'uses $HOME' do
78
77
  ENV.stub(:[]).with('HOME').and_return(File.join(path, '..'))
79
- expect(Berkshelf::Chef::Config.path).to eq(config)
78
+ expect(location).to eq(config)
80
79
  end
81
80
  end
82
81
  end
metadata CHANGED
@@ -1,27 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: berkshelf
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta
5
- prerelease: 6
4
+ version: 2.0.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Jamie Winsor
9
9
  - Josiah Kiehl
10
10
  - Michael Ivey
11
11
  - Justin Campbell
12
+ - Seth Vargo
12
13
  autorequire:
13
14
  bindir: bin
14
15
  cert_chain: []
15
- date: 2013-05-15 00:00:00.000000000 Z
16
+ date: 2013-06-06 00:00:00.000000000 Z
16
17
  dependencies:
17
18
  - !ruby/object:Gem::Dependency
18
- name: celluloid
19
+ name: activesupport
19
20
  requirement: !ruby/object:Gem::Requirement
20
21
  none: false
21
22
  requirements:
22
23
  - - ! '>='
23
24
  - !ruby/object:Gem::Version
24
- version: 0.14.0
25
+ version: 3.2.0
25
26
  type: :runtime
26
27
  prerelease: false
27
28
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,31 +30,31 @@ dependencies:
29
30
  requirements:
30
31
  - - ! '>='
31
32
  - !ruby/object:Gem::Version
32
- version: 0.14.0
33
+ version: 3.2.0
33
34
  - !ruby/object:Gem::Dependency
34
- name: test-kitchen
35
+ name: addressable
35
36
  requirement: !ruby/object:Gem::Requirement
36
37
  none: false
37
38
  requirements:
38
- - - ! '>='
39
+ - - ~>
39
40
  - !ruby/object:Gem::Version
40
- version: 1.0.0.alpha6
41
+ version: 2.3.4
41
42
  type: :runtime
42
43
  prerelease: false
43
44
  version_requirements: !ruby/object:Gem::Requirement
44
45
  none: false
45
46
  requirements:
46
- - - ! '>='
47
+ - - ~>
47
48
  - !ruby/object:Gem::Version
48
- version: 1.0.0.alpha6
49
+ version: 2.3.4
49
50
  - !ruby/object:Gem::Dependency
50
- name: activesupport
51
+ name: celluloid
51
52
  requirement: !ruby/object:Gem::Requirement
52
53
  none: false
53
54
  requirements:
54
55
  - - ! '>='
55
56
  - !ruby/object:Gem::Version
56
- version: 3.2.0
57
+ version: 0.14.0
57
58
  type: :runtime
58
59
  prerelease: false
59
60
  version_requirements: !ruby/object:Gem::Requirement
@@ -61,47 +62,47 @@ dependencies:
61
62
  requirements:
62
63
  - - ! '>='
63
64
  - !ruby/object:Gem::Version
64
- version: 3.2.0
65
+ version: 0.14.0
65
66
  - !ruby/object:Gem::Dependency
66
- name: mixlib-shellout
67
+ name: chozo
67
68
  requirement: !ruby/object:Gem::Requirement
68
69
  none: false
69
70
  requirements:
70
- - - ~>
71
+ - - ! '>='
71
72
  - !ruby/object:Gem::Version
72
- version: '1.1'
73
+ version: 0.6.1
73
74
  type: :runtime
74
75
  prerelease: false
75
76
  version_requirements: !ruby/object:Gem::Requirement
76
77
  none: false
77
78
  requirements:
78
- - - ~>
79
+ - - ! '>='
79
80
  - !ruby/object:Gem::Version
80
- version: '1.1'
81
+ version: 0.6.1
81
82
  - !ruby/object:Gem::Dependency
82
- name: mixlib-config
83
+ name: faraday
83
84
  requirement: !ruby/object:Gem::Requirement
84
85
  none: false
85
86
  requirements:
86
- - - ~>
87
+ - - ! '>='
87
88
  - !ruby/object:Gem::Version
88
- version: '1.1'
89
+ version: 0.8.5
89
90
  type: :runtime
90
91
  prerelease: false
91
92
  version_requirements: !ruby/object:Gem::Requirement
92
93
  none: false
93
94
  requirements:
94
- - - ~>
95
+ - - ! '>='
95
96
  - !ruby/object:Gem::Version
96
- version: '1.1'
97
+ version: 0.8.5
97
98
  - !ruby/object:Gem::Dependency
98
- name: faraday
99
+ name: hashie
99
100
  requirement: !ruby/object:Gem::Requirement
100
101
  none: false
101
102
  requirements:
102
103
  - - ! '>='
103
104
  - !ruby/object:Gem::Version
104
- version: 0.8.5
105
+ version: 2.0.2
105
106
  type: :runtime
106
107
  prerelease: false
107
108
  version_requirements: !ruby/object:Gem::Requirement
@@ -109,15 +110,15 @@ dependencies:
109
110
  requirements:
110
111
  - - ! '>='
111
112
  - !ruby/object:Gem::Version
112
- version: 0.8.5
113
+ version: 2.0.2
113
114
  - !ruby/object:Gem::Dependency
114
- name: ridley
115
+ name: minitar
115
116
  requirement: !ruby/object:Gem::Requirement
116
117
  none: false
117
118
  requirements:
118
119
  - - ~>
119
120
  - !ruby/object:Gem::Version
120
- version: 0.12.1
121
+ version: 0.5.4
121
122
  type: :runtime
122
123
  prerelease: false
123
124
  version_requirements: !ruby/object:Gem::Requirement
@@ -125,47 +126,47 @@ dependencies:
125
126
  requirements:
126
127
  - - ~>
127
128
  - !ruby/object:Gem::Version
128
- version: 0.12.1
129
+ version: 0.5.4
129
130
  - !ruby/object:Gem::Dependency
130
- name: chozo
131
+ name: retryable
131
132
  requirement: !ruby/object:Gem::Requirement
132
133
  none: false
133
134
  requirements:
134
- - - ! '>='
135
+ - - ~>
135
136
  - !ruby/object:Gem::Version
136
- version: 0.6.1
137
+ version: 1.3.3
137
138
  type: :runtime
138
139
  prerelease: false
139
140
  version_requirements: !ruby/object:Gem::Requirement
140
141
  none: false
141
142
  requirements:
142
- - - ! '>='
143
+ - - ~>
143
144
  - !ruby/object:Gem::Version
144
- version: 0.6.1
145
+ version: 1.3.3
145
146
  - !ruby/object:Gem::Dependency
146
- name: hashie
147
+ name: ridley
147
148
  requirement: !ruby/object:Gem::Requirement
148
149
  none: false
149
150
  requirements:
150
- - - ! '>='
151
+ - - ~>
151
152
  - !ruby/object:Gem::Version
152
- version: 2.0.2
153
+ version: 1.0.0
153
154
  type: :runtime
154
155
  prerelease: false
155
156
  version_requirements: !ruby/object:Gem::Requirement
156
157
  none: false
157
158
  requirements:
158
- - - ! '>='
159
+ - - ~>
159
160
  - !ruby/object:Gem::Version
160
- version: 2.0.2
161
+ version: 1.0.0
161
162
  - !ruby/object:Gem::Dependency
162
- name: minitar
163
+ name: solve
163
164
  requirement: !ruby/object:Gem::Requirement
164
165
  none: false
165
166
  requirements:
166
167
  - - ! '>='
167
168
  - !ruby/object:Gem::Version
168
- version: '0'
169
+ version: 0.4.4
169
170
  type: :runtime
170
171
  prerelease: false
171
172
  version_requirements: !ruby/object:Gem::Requirement
@@ -173,15 +174,15 @@ dependencies:
173
174
  requirements:
174
175
  - - ! '>='
175
176
  - !ruby/object:Gem::Version
176
- version: '0'
177
+ version: 0.4.4
177
178
  - !ruby/object:Gem::Dependency
178
- name: solve
179
+ name: test-kitchen
179
180
  requirement: !ruby/object:Gem::Requirement
180
181
  none: false
181
182
  requirements:
182
183
  - - ! '>='
183
184
  - !ruby/object:Gem::Version
184
- version: 0.4.4
185
+ version: 1.0.0.alpha7
185
186
  type: :runtime
186
187
  prerelease: false
187
188
  version_requirements: !ruby/object:Gem::Requirement
@@ -189,7 +190,7 @@ dependencies:
189
190
  requirements:
190
191
  - - ! '>='
191
192
  - !ruby/object:Gem::Version
192
- version: 0.4.4
193
+ version: 1.0.0.alpha7
193
194
  - !ruby/object:Gem::Dependency
194
195
  name: thor
195
196
  requirement: !ruby/object:Gem::Requirement
@@ -207,103 +208,215 @@ dependencies:
207
208
  - !ruby/object:Gem::Version
208
209
  version: 0.18.0
209
210
  - !ruby/object:Gem::Dependency
210
- name: retryable
211
+ name: aruba
211
212
  requirement: !ruby/object:Gem::Requirement
212
213
  none: false
213
214
  requirements:
214
- - - ! '>='
215
+ - - ~>
215
216
  - !ruby/object:Gem::Version
216
- version: '0'
217
- type: :runtime
217
+ version: '0.5'
218
+ type: :development
218
219
  prerelease: false
219
220
  version_requirements: !ruby/object:Gem::Requirement
220
221
  none: false
221
222
  requirements:
222
- - - ! '>='
223
+ - - ~>
223
224
  - !ruby/object:Gem::Version
224
- version: '0'
225
+ version: '0.5'
225
226
  - !ruby/object:Gem::Dependency
226
- name: addressable
227
+ name: cane
227
228
  requirement: !ruby/object:Gem::Requirement
228
229
  none: false
229
230
  requirements:
230
- - - ! '>='
231
+ - - ~>
231
232
  - !ruby/object:Gem::Version
232
- version: '0'
233
- type: :runtime
233
+ version: '2.5'
234
+ type: :development
234
235
  prerelease: false
235
236
  version_requirements: !ruby/object:Gem::Requirement
236
237
  none: false
237
238
  requirements:
238
- - - ! '>='
239
+ - - ~>
239
240
  - !ruby/object:Gem::Version
240
- version: '0'
241
+ version: '2.5'
241
242
  - !ruby/object:Gem::Dependency
242
- name: aruba
243
+ name: chef-zero
243
244
  requirement: !ruby/object:Gem::Requirement
244
245
  none: false
245
246
  requirements:
246
- - - ! '>='
247
+ - - ~>
247
248
  - !ruby/object:Gem::Version
248
- version: '0'
249
+ version: '1.1'
249
250
  type: :development
250
251
  prerelease: false
251
252
  version_requirements: !ruby/object:Gem::Requirement
252
253
  none: false
253
254
  requirements:
254
- - - ! '>='
255
+ - - ~>
255
256
  - !ruby/object:Gem::Version
256
- version: '0'
257
+ version: '1.1'
257
258
  - !ruby/object:Gem::Dependency
258
- name: cane
259
+ name: fuubar
259
260
  requirement: !ruby/object:Gem::Requirement
260
261
  none: false
261
262
  requirements:
262
- - - ! '>='
263
+ - - ~>
263
264
  - !ruby/object:Gem::Version
264
- version: '0'
265
+ version: '1.1'
265
266
  type: :development
266
267
  prerelease: false
267
268
  version_requirements: !ruby/object:Gem::Requirement
268
269
  none: false
269
270
  requirements:
270
- - - ! '>='
271
+ - - ~>
271
272
  - !ruby/object:Gem::Version
272
- version: '0'
273
+ version: '1.1'
273
274
  - !ruby/object:Gem::Dependency
274
275
  name: rake
275
276
  requirement: !ruby/object:Gem::Requirement
276
277
  none: false
277
278
  requirements:
278
- - - ! '>='
279
+ - - ~>
279
280
  - !ruby/object:Gem::Version
280
- version: 0.9.2.2
281
+ version: '0.9'
281
282
  type: :development
282
283
  prerelease: false
283
284
  version_requirements: !ruby/object:Gem::Requirement
284
285
  none: false
285
286
  requirements:
286
- - - ! '>='
287
+ - - ~>
287
288
  - !ruby/object:Gem::Version
288
- version: 0.9.2.2
289
+ version: '0.9'
289
290
  - !ruby/object:Gem::Dependency
290
291
  name: rspec
291
292
  requirement: !ruby/object:Gem::Requirement
292
293
  none: false
293
294
  requirements:
294
- - - ! '>='
295
+ - - ~>
295
296
  - !ruby/object:Gem::Version
296
- version: '0'
297
+ version: '2.13'
297
298
  type: :development
298
299
  prerelease: false
299
300
  version_requirements: !ruby/object:Gem::Requirement
300
301
  none: false
301
302
  requirements:
302
- - - ! '>='
303
+ - - ~>
303
304
  - !ruby/object:Gem::Version
304
- version: '0'
305
+ version: '2.13'
305
306
  - !ruby/object:Gem::Dependency
306
307
  name: simplecov
308
+ requirement: !ruby/object:Gem::Requirement
309
+ none: false
310
+ requirements:
311
+ - - ~>
312
+ - !ruby/object:Gem::Version
313
+ version: '0.7'
314
+ type: :development
315
+ prerelease: false
316
+ version_requirements: !ruby/object:Gem::Requirement
317
+ none: false
318
+ requirements:
319
+ - - ~>
320
+ - !ruby/object:Gem::Version
321
+ version: '0.7'
322
+ - !ruby/object:Gem::Dependency
323
+ name: spork
324
+ requirement: !ruby/object:Gem::Requirement
325
+ none: false
326
+ requirements:
327
+ - - ~>
328
+ - !ruby/object:Gem::Version
329
+ version: '0.9'
330
+ type: :development
331
+ prerelease: false
332
+ version_requirements: !ruby/object:Gem::Requirement
333
+ none: false
334
+ requirements:
335
+ - - ~>
336
+ - !ruby/object:Gem::Version
337
+ version: '0.9'
338
+ - !ruby/object:Gem::Dependency
339
+ name: vcr
340
+ requirement: !ruby/object:Gem::Requirement
341
+ none: false
342
+ requirements:
343
+ - - ~>
344
+ - !ruby/object:Gem::Version
345
+ version: '2.4'
346
+ type: :development
347
+ prerelease: false
348
+ version_requirements: !ruby/object:Gem::Requirement
349
+ none: false
350
+ requirements:
351
+ - - ~>
352
+ - !ruby/object:Gem::Version
353
+ version: '2.4'
354
+ - !ruby/object:Gem::Dependency
355
+ name: webmock
356
+ requirement: !ruby/object:Gem::Requirement
357
+ none: false
358
+ requirements:
359
+ - - ~>
360
+ - !ruby/object:Gem::Version
361
+ version: '1.11'
362
+ type: :development
363
+ prerelease: false
364
+ version_requirements: !ruby/object:Gem::Requirement
365
+ none: false
366
+ requirements:
367
+ - - ~>
368
+ - !ruby/object:Gem::Version
369
+ version: '1.11'
370
+ - !ruby/object:Gem::Dependency
371
+ name: yard
372
+ requirement: !ruby/object:Gem::Requirement
373
+ none: false
374
+ requirements:
375
+ - - ~>
376
+ - !ruby/object:Gem::Version
377
+ version: '0.8'
378
+ type: :development
379
+ prerelease: false
380
+ version_requirements: !ruby/object:Gem::Requirement
381
+ none: false
382
+ requirements:
383
+ - - ~>
384
+ - !ruby/object:Gem::Version
385
+ version: '0.8'
386
+ - !ruby/object:Gem::Dependency
387
+ name: coolline
388
+ requirement: !ruby/object:Gem::Requirement
389
+ none: false
390
+ requirements:
391
+ - - ~>
392
+ - !ruby/object:Gem::Version
393
+ version: 0.4.2
394
+ type: :development
395
+ prerelease: false
396
+ version_requirements: !ruby/object:Gem::Requirement
397
+ none: false
398
+ requirements:
399
+ - - ~>
400
+ - !ruby/object:Gem::Version
401
+ version: 0.4.2
402
+ - !ruby/object:Gem::Dependency
403
+ name: guard
404
+ requirement: !ruby/object:Gem::Requirement
405
+ none: false
406
+ requirements:
407
+ - - ~>
408
+ - !ruby/object:Gem::Version
409
+ version: '1.8'
410
+ type: :development
411
+ prerelease: false
412
+ version_requirements: !ruby/object:Gem::Requirement
413
+ none: false
414
+ requirements:
415
+ - - ~>
416
+ - !ruby/object:Gem::Version
417
+ version: '1.8'
418
+ - !ruby/object:Gem::Dependency
419
+ name: guard-cane
307
420
  requirement: !ruby/object:Gem::Requirement
308
421
  none: false
309
422
  requirements:
@@ -319,7 +432,7 @@ dependencies:
319
432
  - !ruby/object:Gem::Version
320
433
  version: '0'
321
434
  - !ruby/object:Gem::Dependency
322
- name: spork
435
+ name: guard-cucumber
323
436
  requirement: !ruby/object:Gem::Requirement
324
437
  none: false
325
438
  requirements:
@@ -335,7 +448,7 @@ dependencies:
335
448
  - !ruby/object:Gem::Version
336
449
  version: '0'
337
450
  - !ruby/object:Gem::Dependency
338
- name: thor
451
+ name: guard-rspec
339
452
  requirement: !ruby/object:Gem::Requirement
340
453
  none: false
341
454
  requirements:
@@ -351,7 +464,7 @@ dependencies:
351
464
  - !ruby/object:Gem::Version
352
465
  version: '0'
353
466
  - !ruby/object:Gem::Dependency
354
- name: webmock
467
+ name: guard-spork
355
468
  requirement: !ruby/object:Gem::Requirement
356
469
  none: false
357
470
  requirements:
@@ -367,27 +480,28 @@ dependencies:
367
480
  - !ruby/object:Gem::Version
368
481
  version: '0'
369
482
  - !ruby/object:Gem::Dependency
370
- name: vcr
483
+ name: guard-yard
371
484
  requirement: !ruby/object:Gem::Requirement
372
485
  none: false
373
486
  requirements:
374
- - - ~>
487
+ - - ! '>='
375
488
  - !ruby/object:Gem::Version
376
- version: 2.4.0
489
+ version: '0'
377
490
  type: :development
378
491
  prerelease: false
379
492
  version_requirements: !ruby/object:Gem::Requirement
380
493
  none: false
381
494
  requirements:
382
- - - ~>
495
+ - - ! '>='
383
496
  - !ruby/object:Gem::Version
384
- version: 2.4.0
497
+ version: '0'
385
498
  description: Manages a Cookbook's, or an Application's, Cookbook dependencies
386
499
  email:
387
500
  - reset@riotgames.com
388
501
  - jkiehl@riotgames.com
389
502
  - michael.ivey@riotgames.com
390
503
  - justin.campbell@riotgames.com
504
+ - sethvargo@gmail.com
391
505
  executables:
392
506
  - berks
393
507
  extensions: []
@@ -416,15 +530,17 @@ files:
416
530
  - features/default_locations.feature
417
531
  - features/groups_install.feature
418
532
  - features/help.feature
419
- - features/info_command.feature
420
533
  - features/init_command.feature
421
534
  - features/install_command.feature
422
535
  - features/json_formatter.feature
536
+ - features/licenses.feature
423
537
  - features/list_command.feature
424
538
  - features/lockfile.feature
425
- - features/open_command.feature
426
539
  - features/outdated_command.feature
427
540
  - features/package_command.feature
541
+ - features/shelf/list.feature
542
+ - features/shelf/show.feature
543
+ - features/shelf/uninstall.feature
428
544
  - features/show_command.feature
429
545
  - features/step_definitions/berksfile_steps.rb
430
546
  - features/step_definitions/chef_server_steps.rb
@@ -463,8 +579,9 @@ files:
463
579
  - lib/berkshelf/chef/cookbook.rb
464
580
  - lib/berkshelf/chef/cookbook/chefignore.rb
465
581
  - lib/berkshelf/cli.rb
466
- - lib/berkshelf/cli_commands/test_command.rb
467
582
  - lib/berkshelf/command.rb
583
+ - lib/berkshelf/commands/shelf.rb
584
+ - lib/berkshelf/commands/test_command.rb
468
585
  - lib/berkshelf/community_rest.rb
469
586
  - lib/berkshelf/config.rb
470
587
  - lib/berkshelf/cookbook_generator.rb
@@ -491,9 +608,9 @@ files:
491
608
  - lib/berkshelf/locations/site_location.rb
492
609
  - lib/berkshelf/lockfile.rb
493
610
  - lib/berkshelf/logger.rb
494
- - lib/berkshelf/mixin.rb
611
+ - lib/berkshelf/mixin/config.rb
495
612
  - lib/berkshelf/mixin/logging.rb
496
- - lib/berkshelf/mixin/path_helpers.rb
613
+ - lib/berkshelf/mixin/shellout.rb
497
614
  - lib/berkshelf/resolver.rb
498
615
  - lib/berkshelf/test.rb
499
616
  - lib/berkshelf/thor.rb
@@ -502,6 +619,9 @@ files:
502
619
  - lib/thor/monkies.rb
503
620
  - lib/thor/monkies/hash_with_indifferent_access.rb
504
621
  - lib/thor/monkies/shell.rb
622
+ - spec/config/berkshelf.pem
623
+ - spec/config/knife.rb
624
+ - spec/config/validator.pem
505
625
  - spec/fixtures/Berksfile
506
626
  - spec/fixtures/cassettes/Berkshelf_CommunityREST/_download/unpacks_the_archive.json
507
627
  - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
@@ -548,7 +668,6 @@ files:
548
668
  - spec/spec_helper.rb
549
669
  - spec/support/chef_api.rb
550
670
  - spec/support/chef_server.rb
551
- - spec/support/knife.rb
552
671
  - spec/support/matchers/file_system_matchers.rb
553
672
  - spec/support/matchers/filepath_matchers.rb
554
673
  - spec/support/test_generators.rb
@@ -613,15 +732,17 @@ test_files:
613
732
  - features/default_locations.feature
614
733
  - features/groups_install.feature
615
734
  - features/help.feature
616
- - features/info_command.feature
617
735
  - features/init_command.feature
618
736
  - features/install_command.feature
619
737
  - features/json_formatter.feature
738
+ - features/licenses.feature
620
739
  - features/list_command.feature
621
740
  - features/lockfile.feature
622
- - features/open_command.feature
623
741
  - features/outdated_command.feature
624
742
  - features/package_command.feature
743
+ - features/shelf/list.feature
744
+ - features/shelf/show.feature
745
+ - features/shelf/uninstall.feature
625
746
  - features/show_command.feature
626
747
  - features/step_definitions/berksfile_steps.rb
627
748
  - features/step_definitions/chef_server_steps.rb
@@ -635,6 +756,9 @@ test_files:
635
756
  - features/update_command.feature
636
757
  - features/upload_command.feature
637
758
  - features/vendor_install.feature
759
+ - spec/config/berkshelf.pem
760
+ - spec/config/knife.rb
761
+ - spec/config/validator.pem
638
762
  - spec/fixtures/Berksfile
639
763
  - spec/fixtures/cassettes/Berkshelf_CommunityREST/_download/unpacks_the_archive.json
640
764
  - spec/fixtures/cassettes/Berkshelf_CommunityREST/_find/raises_a_CommunitySiteError_error_on_any_non_200_or_404_response.json
@@ -681,7 +805,6 @@ test_files:
681
805
  - spec/spec_helper.rb
682
806
  - spec/support/chef_api.rb
683
807
  - spec/support/chef_server.rb
684
- - spec/support/knife.rb
685
808
  - spec/support/matchers/file_system_matchers.rb
686
809
  - spec/support/matchers/filepath_matchers.rb
687
810
  - spec/support/test_generators.rb