diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2016-10-05 14:22:02 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2016-10-05 14:53:17 -0700 |
commit | 5338410abfb52c7675fea4db59c9754879cac4b9 (patch) | |
tree | 5eff5ab337c96002d368b8be2038a17811ed6d6d | |
parent | fd42d49ed5e9b32ac0763a7f7483a7450a4702e7 (diff) | |
download | chef-5338410abfb52c7675fea4db59c9754879cac4b9.tar.gz |
redo of the redo of the patch to fix #5089lcg/issue5089
see discussion in:
https://github.com/chef/chef/pull/5096
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
-rw-r--r-- | lib/chef/cookbook/file_system_file_vendor.rb | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/lib/chef/cookbook/file_system_file_vendor.rb b/lib/chef/cookbook/file_system_file_vendor.rb index 91f1c9f853..8088ed00cd 100644 --- a/lib/chef/cookbook/file_system_file_vendor.rb +++ b/lib/chef/cookbook/file_system_file_vendor.rb @@ -37,20 +37,19 @@ class Chef def initialize(manifest, *repo_paths) @cookbook_name = manifest[:cookbook_name] @repo_paths = repo_paths.flatten - raise ArgumentError, "You must specify at least one repo path" if @repo_paths.empty? + raise ArgumentError, "You must specify at least one repo path" if repo_paths.empty? + end + + def cookbooks + @cookbooks ||= Chef::CookbookLoader.new(repo_paths).load_cookbooks end # Implements abstract base's requirement. It looks in the # Chef::Config.cookbook_path file hierarchy for the requested # file. def get_filename(filename) - location = @repo_paths.inject(nil) do |memo, basepath| - candidate_location = File.join(basepath, @cookbook_name, filename) - memo = candidate_location if File.exist?(candidate_location) - memo - end - raise "File #{filename} does not exist for cookbook #{@cookbook_name}" unless location - + location = File.join(cookbooks[cookbook_name].root_dir, filename) if cookbooks.has_key?(cookbook_name) + raise "File #{filename} does not exist for cookbook #{cookbook_name}" unless location && File.exist?(location) location end |