diff options
Diffstat (limited to 'chef/lib/chef/mixin/find_preferred_file.rb')
-rw-r--r-- | chef/lib/chef/mixin/find_preferred_file.rb | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/chef/lib/chef/mixin/find_preferred_file.rb b/chef/lib/chef/mixin/find_preferred_file.rb index 2c3fd771de..de254bb801 100644 --- a/chef/lib/chef/mixin/find_preferred_file.rb +++ b/chef/lib/chef/mixin/find_preferred_file.rb @@ -72,26 +72,17 @@ class Chef File.join("#{platform}", "#{file_name}"), File.join("default", "#{file_name}") ] - to_send = nil + file_list_str = file_list.keys.join("\n") preferences.each do |pref| Chef::Log.debug("Looking for #{pref}") - file_list.each_key do |file| - Chef::Log.debug("Checking for #{pref} #{file} ") - if file =~ /#{pref}$/ - Chef::Log.debug("Matched #{pref} for #{file}!") - to_send = file - break - end + matcher = /^(.+#{pref})$/ + if match = matcher.match(file_list_str) + return match[1] end - break if to_send end - unless to_send - raise Chef::Exceptions::FileNotFound, "Cannot find a preferred file for #{file_name}!" - end - - to_send + raise Chef::Exceptions::FileNotFound, "Cannot find a preferred file for #{file_name}!" end end |