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.
@@ -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/damm/ey-emerge.git /tmp/recipes/ey-emerge
117
- $ ey-recipes clone /tmp/recipes/ey-emerge -n emerge
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.0.0')
1
+ <%= recipe_name %>_version('<%= version %>')
@@ -3,8 +3,20 @@
3
3
  # Recipe:: install
4
4
  #
5
5
 
6
- # package 'dev-something/<%= recipe_name %>' do
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 -%>
@@ -1,5 +1,5 @@
1
1
  module Engineyard
2
2
  module Recipes
3
- VERSION = "0.1.1"
3
+ VERSION = "0.1.2"
4
4
  end
5
5
  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.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: &70281584606040 !ruby/object:Gem::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: *70281584606040
24
+ version_requirements: *70215351196580
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: engineyard
27
- requirement: &70281584605520 !ruby/object:Gem::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: *70281584605520
35
+ version_requirements: *70215351193640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70281584604980 !ruby/object:Gem::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: *70281584604980
46
+ version_requirements: *70215351191920
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: cucumber
49
- requirement: &70281584604440 !ruby/object:Gem::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: *70281584604440
57
+ version_requirements: *70215351184680
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &70281584603860 !ruby/object:Gem::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: *70281584603860
68
+ version_requirements: *70215351164040
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: launchy
71
- requirement: &70281584603300 !ruby/object:Gem::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: *70281584603300
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: -1913390095989605023
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: -1913390095989605023
153
+ hash: -3417918562051362064
154
154
  requirements: []
155
155
  rubyforge_project: engineyard-recipes
156
156
  rubygems_version: 1.8.6