diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2015-01-20 10:16:17 -0800 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2015-01-20 10:21:10 -0800 |
commit | 35276fd91c5aec8986723504b8a490e5823b770e (patch) | |
tree | 5ea6d3a89ebc905d816753160d290e8a76199e0b /lib/chef/run_context.rb | |
parent | b622710cd1ee8af39bc3ff255e2394c0115abaac (diff) | |
download | chef-35276fd91c5aec8986723504b8a490e5823b770e.tar.gz |
make include_recipe "::foo" use current cookbook
The following code is brittle if you want to fork the cookbook and rename it
(which is a best practice when forking cookbooks for internal use):
```ruby
if node[:platform_family] == "rhel"
include_recipe "mycookbook::_rhel"
end
```
In order for cookbooks to be easily renamable they can currently use the
syntax `include_recipe "#{cookbook_name}::_rhel"` which is unwieldy.
This patch adds `include_recipe "::_rhel"` as syntax sugar to make this
easier.
Diffstat (limited to 'lib/chef/run_context.rb')
-rw-r--r-- | lib/chef/run_context.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/chef/run_context.rb b/lib/chef/run_context.rb index 6803dc5796..bb1bf28ad7 100644 --- a/lib/chef/run_context.rb +++ b/lib/chef/run_context.rb @@ -136,10 +136,10 @@ class Chef end # Evaluates the recipes +recipe_names+. Used by DSL::IncludeRecipe - def include_recipe(*recipe_names) + def include_recipe(*recipe_names, current_cookbook: nil) result_recipes = Array.new recipe_names.flatten.each do |recipe_name| - if result = load_recipe(recipe_name) + if result = load_recipe(recipe_name, current_cookbook: current_cookbook) result_recipes << result end end @@ -147,10 +147,10 @@ class Chef end # Evaluates the recipe +recipe_name+. Used by DSL::IncludeRecipe - def load_recipe(recipe_name) + def load_recipe(recipe_name, current_cookbook: nil) Chef::Log.debug("Loading Recipe #{recipe_name} via include_recipe") - cookbook_name, recipe_short_name = Chef::Recipe.parse_recipe_name(recipe_name) + cookbook_name, recipe_short_name = Chef::Recipe.parse_recipe_name(recipe_name, current_cookbook: current_cookbook) if unreachable_cookbook?(cookbook_name) # CHEF-4367 Chef::Log.warn(<<-ERROR_MESSAGE) |