berkshelf 2.0.0.beta → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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