berkshelf 0.3.2 → 0.3.3
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.
- data/Guardfile +2 -0
- data/LICENSE +1 -0
- data/berkshelf.gemspec +1 -0
- data/features/init_command.feature +4 -4
- data/features/step_definitions/cli_steps.rb +1 -1
- data/features/step_definitions/filesystem_steps.rb +1 -1
- data/features/without.feature +2 -1
- data/lib/berkshelf/berksfile.rb +7 -2
- data/lib/berkshelf/cli.rb +1 -8
- data/lib/berkshelf/version.rb +1 -1
- data/spec/unit/berkshelf/init_generator_spec.rb +2 -2
- metadata +19 -3
data/Guardfile
CHANGED
@@ -20,4 +20,6 @@ guard 'cucumber', :cli => "--drb --format pretty --tags ~@wip", :all_on_start =>
|
|
20
20
|
watch(%r{^features/.+\.feature$})
|
21
21
|
watch(%r{^features/support/.+$}) { 'features' }
|
22
22
|
watch(%r{^features/step_definitions/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'features' }
|
23
|
+
|
24
|
+
watch(%r{^lib/berkshelf/cli.rb}) { 'features' }
|
23
25
|
end
|
data/LICENSE
CHANGED
data/berkshelf.gemspec
CHANGED
@@ -7,8 +7,8 @@ Feature: initialize command
|
|
7
7
|
Given a cookbook named "sparkle_motion"
|
8
8
|
When I run the init command with the cookbook "sparkle_motion" as the target
|
9
9
|
Then the cookbook "sparkle_motion" should have the following files:
|
10
|
-
| Berksfile
|
11
|
-
|
|
10
|
+
| Berksfile |
|
11
|
+
| chefignore |
|
12
12
|
And the file "Berksfile" in the cookbook "sparkle_motion" should contain:
|
13
13
|
"""
|
14
14
|
metadata
|
@@ -22,7 +22,7 @@ Feature: initialize command
|
|
22
22
|
Then the directory "not_a_cookbook" should have the following files:
|
23
23
|
| Berksfile |
|
24
24
|
And the directory "not_a_cookbook" should not have the following files:
|
25
|
-
|
|
25
|
+
| chefignore |
|
26
26
|
And the file "Berksfile" in the directory "not_a_cookbook" should not contain:
|
27
27
|
"""
|
28
28
|
metadata
|
@@ -36,5 +36,5 @@ Feature: initialize command
|
|
36
36
|
And the current directory should have the following files:
|
37
37
|
| Berksfile |
|
38
38
|
And the current directory should not have the following files:
|
39
|
-
|
|
39
|
+
| chefignore |
|
40
40
|
And the exit status should be 0
|
@@ -39,7 +39,7 @@ When /^I run the init command with no value for the target$/ do
|
|
39
39
|
end
|
40
40
|
|
41
41
|
When /^I run the install command$/ do
|
42
|
-
run_simple(unescape("berks install"),
|
42
|
+
run_simple(unescape("berks install"), false)
|
43
43
|
end
|
44
44
|
|
45
45
|
When /^I run the install command with flags:$/ do |flags|
|
data/features/without.feature
CHANGED
@@ -17,7 +17,8 @@ Feature: --without block
|
|
17
17
|
cookbook "ntp", "= 1.1.8"
|
18
18
|
end
|
19
19
|
"""
|
20
|
-
When I run
|
20
|
+
When I run the install command with flags:
|
21
|
+
| --without notme |
|
21
22
|
Then the cookbook store should have the cookbooks:
|
22
23
|
| mysql | 1.2.4 |
|
23
24
|
| ntp | 1.1.8 |
|
data/lib/berkshelf/berksfile.rb
CHANGED
@@ -185,8 +185,13 @@ module Berkshelf
|
|
185
185
|
def write_shims(path, cached_cookbooks)
|
186
186
|
FileUtils.mkdir_p(path)
|
187
187
|
cached_cookbooks.each do |cached_cookbook|
|
188
|
-
destination = File.join(path, cached_cookbook.cookbook_name)
|
189
|
-
|
188
|
+
destination = File.expand_path(File.join(path, cached_cookbook.cookbook_name))
|
189
|
+
begin
|
190
|
+
FileUtils.ln_r(cached_cookbook.path, destination, force: true)
|
191
|
+
rescue ArgumentError
|
192
|
+
Berkshelf.ui.warn "Skipping shim for #{cached_cookbook}."
|
193
|
+
Berkshelf.ui.warn "Cannot write a shim for a path location source into a subdirectory of itself."
|
194
|
+
end
|
190
195
|
end
|
191
196
|
end
|
192
197
|
|
data/lib/berkshelf/cli.rb
CHANGED
@@ -32,6 +32,7 @@ module Berkshelf
|
|
32
32
|
method_option :shims,
|
33
33
|
type: :string,
|
34
34
|
default: nil,
|
35
|
+
lazy_default: File.join(Dir.pwd, "cookbooks"),
|
35
36
|
desc: "Create a directory of shims pointing to Cookbook Versions.",
|
36
37
|
banner: "PATH"
|
37
38
|
method_option :without,
|
@@ -47,10 +48,6 @@ module Berkshelf
|
|
47
48
|
banner: "PATH"
|
48
49
|
desc "install", "Install the Cookbooks specified by a Berksfile or a Berskfile.lock."
|
49
50
|
def install
|
50
|
-
if options[:shims] == "shims" # This means 'no value given'.
|
51
|
-
options[:shims] = default_shims_path
|
52
|
-
end
|
53
|
-
|
54
51
|
berksfile = ::Berkshelf::Berksfile.from_file(options[:berksfile])
|
55
52
|
berksfile.install(options)
|
56
53
|
rescue BerkshelfError => e
|
@@ -144,9 +141,5 @@ module Berkshelf
|
|
144
141
|
rescue Errno::ENOENT
|
145
142
|
raise KnifeConfigNotFound, "Unable to find a Knife config at #{options[:config]}. Specify a different path with --config."
|
146
143
|
end
|
147
|
-
|
148
|
-
def default_shims_path
|
149
|
-
File.join(Dir.pwd, "cookbooks")
|
150
|
-
end
|
151
144
|
end
|
152
145
|
end
|
data/lib/berkshelf/version.rb
CHANGED
@@ -15,12 +15,12 @@ module Berkshelf
|
|
15
15
|
specify do
|
16
16
|
target_root.should have_structure {
|
17
17
|
file "Berksfile"
|
18
|
-
no_file "
|
18
|
+
no_file "chefignore"
|
19
19
|
}
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
|
-
context "with a
|
23
|
+
context "with a chefignore" do
|
24
24
|
before do
|
25
25
|
generator = subject.new([target_root], chefignore: true)
|
26
26
|
capture(:stdout) { generator.invoke_all }
|
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: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2012-06-
|
15
|
+
date: 2012-06-27 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: dep_selector
|
@@ -334,6 +334,22 @@ dependencies:
|
|
334
334
|
- - ! '>='
|
335
335
|
- !ruby/object:Gem::Version
|
336
336
|
version: '0'
|
337
|
+
- !ruby/object:Gem::Dependency
|
338
|
+
name: coolline
|
339
|
+
requirement: !ruby/object:Gem::Requirement
|
340
|
+
none: false
|
341
|
+
requirements:
|
342
|
+
- - ! '>='
|
343
|
+
- !ruby/object:Gem::Version
|
344
|
+
version: '0'
|
345
|
+
type: :development
|
346
|
+
prerelease: false
|
347
|
+
version_requirements: !ruby/object:Gem::Requirement
|
348
|
+
none: false
|
349
|
+
requirements:
|
350
|
+
- - ! '>='
|
351
|
+
- !ruby/object:Gem::Version
|
352
|
+
version: '0'
|
337
353
|
description: Manages a Cookbook's, or an Application's, Cookbook dependencies
|
338
354
|
email:
|
339
355
|
- josiah@skirmisher.net
|
@@ -458,7 +474,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
458
474
|
version: '0'
|
459
475
|
segments:
|
460
476
|
- 0
|
461
|
-
hash: -
|
477
|
+
hash: -3981898465681112327
|
462
478
|
requirements: []
|
463
479
|
rubyforge_project:
|
464
480
|
rubygems_version: 1.8.23
|