summaryrefslogtreecommitdiff
path: root/chef/lib/chef/mixin/find_preferred_file.rb
diff options
context:
space:
mode:
Diffstat (limited to 'chef/lib/chef/mixin/find_preferred_file.rb')
-rw-r--r--chef/lib/chef/mixin/find_preferred_file.rb19
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