class Mamiya::Agent::Tasks::Prepare

Public Instance Methods

check() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 16
def check
  unless package_path.exist?
    new_chain = ['prepare'] + (task['_chain'] || [])
    logger.info "Package not fetched, enqueueing fetch task with #{new_chain.inspect}"
    task_queue.enqueue(
      :fetch,
      task.merge('_chain' => new_chain)
    )
    return false
  end

  true
end
execute() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 11
def execute
  return unless check
  super
end
run() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 30
def run
  if prerelease_path.exist? 
    if prerelease_path.join('.mamiya.prepared').exist?
      return
    else
      FileUtils.remove_entry_secure prerelease_path
    end
  end

  packages_dir.join(application).mkpath
  prereleases_dir.join(application).mkpath

  extract_step.run!
  prepare_step.run!

  task_queue.enqueue(:clean, {})
end

Private Instance Methods

application() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 50
def application
  task['app']
end
extract_step() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 84
def extract_step
  @extract_step ||= Mamiya::Steps::Extract.new(
    package: package_path,
    destination: prerelease_path,
    config: config,
    logger: logger,
  )
end
labels() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 79
def labels
  @labels ||= agent.labels
end
package() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 54
def package
  task['pkg']
end
package_path() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 70
def package_path
  packages_dir.join(application, "#{package}.tar.gz")
end
packages_dir() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 62
def packages_dir
  @packages_dir ||= config.packages_dir
end
prepare_step() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 93
def prepare_step
  @prepare_step ||= Mamiya::Steps::Prepare.new(
    script: nil,
    target: prerelease_path,
    config: config,
    labels: labels,
    logger: logger,
  )
end
prerelease_path() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 74
def prerelease_path
  prereleases_dir.join(application, release_name)
end
prereleases_dir() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 66
def prereleases_dir
  @prereleases_dir ||= config.prereleases_dir
end
release_name() click to toggle source
# File lib/mamiya/agent/tasks/prepare.rb, line 58
def release_name
  task['release'] || package
end