generate_instructions

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