engineyard-recipes 0.1.1 → 0.1.2
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/ChangeLog.md +5 -1
- data/README.md +2 -2
- data/features/generate-recipe.feature +47 -1
- data/features/step_definitions/common_steps.rb +7 -0
- data/lib/engineyard-recipes/cli.rb +8 -1
- data/lib/engineyard-recipes/generators/recipe_generator.rb +7 -0
- data/lib/engineyard-recipes/generators/recipe_generator/templates/cookbooks/%recipe_name%/attributes/recipe.rb.tt +1 -1
- data/lib/engineyard-recipes/generators/recipe_generator/templates/cookbooks/%recipe_name%/recipes/install.rb.tt +14 -2
- data/lib/engineyard-recipes/version.rb +1 -1
- metadata +15 -15
data/ChangeLog.md
CHANGED
@@ -12,4 +12,8 @@ Patches:
|
|
12
12
|
|
13
13
|
### v0.1.1
|
14
14
|
|
15
|
-
* `clone` - When cloning a recipe folder, don't insert require_recipe if the folder doesn't have a recipe folder
|
15
|
+
* `clone` - When cloning a recipe folder, don't insert require_recipe if the folder doesn't have a recipe folder
|
16
|
+
|
17
|
+
### v0.1.2
|
18
|
+
|
19
|
+
* `recipe` - can take --package/--version/--unmasked options
|
data/README.md
CHANGED
@@ -113,8 +113,8 @@ Also install ey-dnapi below.
|
|
113
113
|
* ey-emerge - additional helpers to install/use masked packages [[repo](https://github.com/damm/ey-emerge)]
|
114
114
|
|
115
115
|
```
|
116
|
-
$ git clone https://github.com/
|
117
|
-
$ ey-recipes clone /tmp/recipes/ey-
|
116
|
+
$ git clone https://github.com/engineyard/ey-cloud-recipes.git /tmp/recipes/ey-cloud-recipes
|
117
|
+
$ ey-recipes clone /tmp/recipes/ey-cloud-recipes/cookbooks/emerge
|
118
118
|
```
|
119
119
|
|
120
120
|
* ey-dnapi - access the internal dna.json metadata via `node[:engineyard]` [[repo](https://github.com/damm/ey-dnapi)]
|
@@ -33,7 +33,53 @@ Feature: Generate package recipe
|
|
33
33
|
identical cookbooks/new-component/recipes/install.rb
|
34
34
|
append cookbooks/main/recipes/default.rb
|
35
35
|
"""
|
36
|
-
|
36
|
+
|
37
|
+
Scenario: Generate a new recipe for a specific package/version that is stable
|
38
|
+
When I run local executable "ey-recipes" with arguments "recipe gitosis -p dev-util/gitosis-gentoo -v 0.2_p20081028"
|
39
|
+
And file "cookbooks/gitosis/recipes/default.rb" is created
|
40
|
+
And file "cookbooks/gitosis/recipes/default.rb" contains "require_recipe 'gitosis::install'"
|
41
|
+
And file "cookbooks/gitosis/recipes/install.rb" is created
|
42
|
+
And file "cookbooks/gitosis/attributes/recipe.rb" is created
|
43
|
+
And file "cookbooks/gitosis/attributes/recipe.rb" contains "gitosis_version('0.2_p20081028')"
|
44
|
+
And file "cookbooks/gitosis/recipes/install.rb" contains
|
45
|
+
"""
|
46
|
+
#
|
47
|
+
# Cookbook Name:: gitosis
|
48
|
+
# Recipe:: install
|
49
|
+
#
|
50
|
+
|
51
|
+
package 'dev-util/gitosis-gentoo' do
|
52
|
+
version node[:gitosis_version]
|
53
|
+
action :install
|
54
|
+
end
|
55
|
+
|
56
|
+
"""
|
57
|
+
|
58
|
+
Scenario: Generate a new recipe for a specific package/version that is masked
|
59
|
+
When I run local executable "ey-recipes" with arguments "recipe gitosis -p dev-util/gitosis-gentoo -v 0.2_p20081028 -u"
|
60
|
+
And file "cookbooks/gitosis/recipes/default.rb" is created
|
61
|
+
And file "cookbooks/gitosis/recipes/default.rb" contains "require_recipe 'gitosis::install'"
|
62
|
+
And file "cookbooks/gitosis/recipes/install.rb" is created
|
63
|
+
And file "cookbooks/gitosis/attributes/recipe.rb" is created
|
64
|
+
And file "cookbooks/gitosis/attributes/recipe.rb" contains "gitosis_version('0.2_p20081028')"
|
65
|
+
And file "cookbooks/gitosis/recipes/install.rb" contains
|
66
|
+
"""
|
67
|
+
#
|
68
|
+
# Cookbook Name:: gitosis
|
69
|
+
# Recipe:: install
|
70
|
+
#
|
71
|
+
|
72
|
+
enable_package 'dev-util/gitosis-gentoo' do
|
73
|
+
version node[:gitosis_version]
|
74
|
+
end
|
75
|
+
|
76
|
+
package 'dev-util/gitosis-gentoo' do
|
77
|
+
version node[:gitosis_version]
|
78
|
+
action :install
|
79
|
+
end
|
80
|
+
|
81
|
+
"""
|
82
|
+
|
37
83
|
|
38
84
|
|
39
85
|
|
@@ -104,6 +104,13 @@ Then /^file "([^"]*)" contains "([^"]*)"$/ do |file, text|
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
107
|
+
Then /^file "([^"]*)" contains$/ do |file, text|
|
108
|
+
in_project_folder do
|
109
|
+
actual_output = File.read(file)
|
110
|
+
actual_output.should == text
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
107
114
|
Then /^file "([^"]*)" does not contain "([^"]*)"$/ do |file, text|
|
108
115
|
in_project_folder do
|
109
116
|
actual_output = File.read(file)
|
@@ -13,9 +13,16 @@ module Engineyard
|
|
13
13
|
end
|
14
14
|
|
15
15
|
desc "recipe RECIPE", "Generate recipe for a package"
|
16
|
+
method_option :package, :aliases => ['-p'], :desc => "Gentoo package name, e.g. dev-util/gitosis-gentoo"
|
17
|
+
method_option :version, :aliases => ['-v'], :desc => "Gentoo package version, e.g. 0.2_p20081028"
|
18
|
+
method_options %w( unmasked -u ) => :boolean, :desc => "Unmask the required gentoo package"
|
16
19
|
def recipe(recipe_name)
|
20
|
+
package = options["package"] || "UNKNOWN/#{recipe_name}"
|
21
|
+
version = options["version"] || '1.0.0'
|
22
|
+
unmasked = options["unmasked"] || false
|
23
|
+
|
17
24
|
require 'engineyard-recipes/generators/recipe_generator'
|
18
|
-
Engineyard::Recipes::Generators::RecipeGenerator.start([recipe_name])
|
25
|
+
Engineyard::Recipes::Generators::RecipeGenerator.start([recipe_name, package, version, unmasked])
|
19
26
|
end
|
20
27
|
|
21
28
|
desc "definition RECIPE DEFINITION", "Generate recipe for a package"
|
@@ -6,6 +6,9 @@ module Engineyard::Recipes
|
|
6
6
|
include Thor::Actions
|
7
7
|
|
8
8
|
argument :recipe_name
|
9
|
+
argument :package
|
10
|
+
argument :version
|
11
|
+
argument :unmasked, :optional => true
|
9
12
|
|
10
13
|
def self.source_root
|
11
14
|
File.join(File.dirname(__FILE__), "recipe_generator", "templates")
|
@@ -30,6 +33,10 @@ module Engineyard::Recipes
|
|
30
33
|
def say(msg, color = nil)
|
31
34
|
color ? shell.say(msg, color) : shell.say(msg)
|
32
35
|
end
|
36
|
+
|
37
|
+
def known_package?
|
38
|
+
package =~ /UNKNOWN/
|
39
|
+
end
|
33
40
|
end
|
34
41
|
end
|
35
42
|
end
|
@@ -1 +1 @@
|
|
1
|
-
<%= recipe_name %>_version('
|
1
|
+
<%= recipe_name %>_version('<%= version %>')
|
@@ -3,8 +3,20 @@
|
|
3
3
|
# Recipe:: install
|
4
4
|
#
|
5
5
|
|
6
|
-
|
6
|
+
<% unless known_package? -%>
|
7
|
+
<% if unmasked -%>
|
8
|
+
enable_package '<%= package %>' do
|
9
|
+
version node[:<%= recipe_name %>_version]
|
10
|
+
end
|
11
|
+
|
12
|
+
<% end -%>
|
13
|
+
package '<%= package %>' do
|
14
|
+
version node[:<%= recipe_name %>_version]
|
15
|
+
action :install
|
16
|
+
end
|
17
|
+
<% else -%>
|
18
|
+
# package '<%= package %>' do
|
7
19
|
# version node[:<%= recipe_name %>_version]
|
8
|
-
#
|
9
20
|
# action :install
|
10
21
|
# end
|
22
|
+
<% end -%>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: engineyard-recipes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-11-16 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &70215351196580 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.14.6
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70215351196580
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: engineyard
|
27
|
-
requirement: &
|
27
|
+
requirement: &70215351193640 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 1.4.6
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70215351193640
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rake
|
38
|
-
requirement: &
|
38
|
+
requirement: &70215351191920 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 0.9.2
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70215351191920
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: cucumber
|
49
|
-
requirement: &
|
49
|
+
requirement: &70215351184680 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.1.2
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70215351184680
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rspec
|
60
|
-
requirement: &
|
60
|
+
requirement: &70215351164040 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ~>
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 2.7.0
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70215351164040
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: launchy
|
71
|
-
requirement: &
|
71
|
+
requirement: &70215351162720 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,7 +76,7 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70215351162720
|
80
80
|
description: Tools to generate, upload, test and apply chef recipes for Engine Yard
|
81
81
|
Cloud.
|
82
82
|
email:
|
@@ -141,7 +141,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
141
141
|
version: '0'
|
142
142
|
segments:
|
143
143
|
- 0
|
144
|
-
hash: -
|
144
|
+
hash: -3417918562051362064
|
145
145
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
146
|
none: false
|
147
147
|
requirements:
|
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
150
150
|
version: '0'
|
151
151
|
segments:
|
152
152
|
- 0
|
153
|
-
hash: -
|
153
|
+
hash: -3417918562051362064
|
154
154
|
requirements: []
|
155
155
|
rubyforge_project: engineyard-recipes
|
156
156
|
rubygems_version: 1.8.6
|