summaryrefslogtreecommitdiff
path: root/lib/chef/run_context.rb
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-01-20 10:16:17 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2015-01-20 10:21:10 -0800
commit35276fd91c5aec8986723504b8a490e5823b770e (patch)
tree5ea6d3a89ebc905d816753160d290e8a76199e0b /lib/chef/run_context.rb
parentb622710cd1ee8af39bc3ff255e2394c0115abaac (diff)
downloadchef-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.rb8
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)