def find_preferred_file(cookbook_id, file_type, file_name, fqdn, platform, version)
file_list = load_cookbook_files(cookbook_id, file_type)
preferences = [
File.join("host-#{fqdn}", "#{file_name}"),
File.join("#{platform}-#{version}", "#{file_name}"),
File.join("#{platform}", "#{file_name}"),
File.join("default", "#{file_name}")
]
file_list_str = file_list.keys.join("\n")
Chef::Log.debug("Searching for preferred file in\n#{file_list_str}")
preferences.each do |pref|
Chef::Log.debug("Looking for #{pref}")
matcher = /^(.+#{Regexp.escape(pref)})$/
if match = matcher.match(file_list_str)
return match[1]
end
end
raise Chef::Exceptions::FileNotFound, "Cannot find a preferred file for #{file_name}!"
end