class Dronejob::Command

Public Instance Methods

archive() click to toggle source
# File lib/dronejob/command.rb, line 32
def archive
  archive_dir = Workspace::Dir.new(File.join(Dir.pwd, "archive"))
  archive_dir.create
  Workspace::Dir.new(File.join(Dir.pwd, "tmp/jobs")).each_dir do |dir|
    dronejob_variables = dir.file("dronejob.yml").read_yaml
    next unless dronejob_variables[:dronejob_completed] == true

    Dronejob::Base.log("info", "Archiving #{dir.name}")
    archive_file = archive_dir.file("#{dir.name}.zip")
    if archive_file.exists? and !options.force
      Dronejob::Base.log("error", "Error: Archive '#{archive_file}' already exists. Use --force to replace.")
    else
      archive_file.delete if archive_file.exists?
      dir.compress(archive_file)
      dir.delete
    end
  end
end
continue() click to toggle source
# File lib/dronejob/command.rb, line 74
def continue
  job_dir = Workspace::Dir.new(File.join(Dir.pwd, "tmp/jobs")).dir(options.job)
  dronejob_config = job_dir.file("dronejob.yml").read_yaml
  job_params = dronejob_config[:job_params]
  job_identifier = dronejob_config[:job_identifier]
  worker = Dronejob::Loader.workers[job_identifier]
  job_params["from"] = options.from
  worker.perform_now(job_params)
end
unarchive() click to toggle source
# File lib/dronejob/command.rb, line 56
def unarchive
  archives_dir = Workspace::Dir.new(File.join(Dir.pwd, "archive"))
  archive_file = archives_dir.file("#{options.archive}.zip")
  Dronejob::Base.log("info", "Unarchiving '#{archive_file}'")
  target_dir = Workspace::Dir.new(File.join(Dir.pwd, "tmp/jobs")).dir(options.archive)
  if !options.force and target_dir.exists?
    Dronejob::Base.log("error", "Error: Job directory already exists")
  else
    target_dir.delete if target_dir.exists?
    archive_file.extract(target_dir)
  end
end