in lib/instance_agent/plugins/codedeploy/installer.rb [58:98]
def generate_instructions(application_specification)
InstanceAgent::Plugins::CodeDeployPlugin::InstallInstruction.generate_instructions() do |i|
application_specification.files.each do |fi|
absolute_source_path = File.join(deployment_archive_dir,
fi.source)
log(:debug, "generating instructions for copying #{fi.source} to #{fi.destination}")
if File.directory?(absolute_source_path)
fill_in_missing_ancestors(i, fi.destination)
generate_directory_copy(i, absolute_source_path, fi.destination)
else
file_destination = File.join(fi.destination, File.basename(absolute_source_path))
fill_in_missing_ancestors(i, file_destination)
generate_normal_copy(i, absolute_source_path, file_destination)
end
end
(application_specification.permissions || []).each do |permission|
object = permission.object
log(:debug, "generating instructions for setting permissions on object #{object}")
log(:debug, "it is an existing directory - #{File.directory?(object)}")
if i.copying_file?(object)
if permission.type.include?("file")
log(:debug, "found matching file #{object} to set permissions on")
permission.validate_file_permission
permission.validate_file_acl(object)
i.set_permissions(object, permission)
end
elsif (i.making_directory?(object) || File.directory?(object))
log(:debug, "found matching directory #{object} to search for objects to set permissions on")
i.find_matches(permission).each do|match|
log(:debug, "found matching object #{match} to set permissions on")
i.set_permissions(match, permission)
end
end
end
end
end