class Crowbar::Client::Command::Backup::Download

Implementation for the backup download command

Public Instance Methods

execute() click to toggle source
# File lib/crowbar/client/command/backup/download.rb, line 31
def execute
  request.process do |request|
    case request.code
    when 200
      if write(request.body)
        say "Successfully downloaded backup"
      else
        err "Failed to download backup"
      end
    when 404
      err "Backup does not exist"
    else
      err request.body
    end
  end
end
request() click to toggle source
# File lib/crowbar/client/command/backup/download.rb, line 25
def request
  @request ||= Request::Backup::Download.new(
    args
  )
end

Protected Instance Methods

path() click to toggle source
# File lib/crowbar/client/command/backup/download.rb, line 60
def path
  @path ||=
    case args.file
    when "-"
      stdout.to_io
    when File
      args.file
    else
      File.new(
        args.file || "#{args.name}.tar.gz",
        File::CREAT | File::TRUNC | File::RDWR
      )
    end
end
write(body) click to toggle source
# File lib/crowbar/client/command/backup/download.rb, line 50
def write(body)
  path.binmode
  path.write body

  true
rescue
  path.unlink if path.file?
  false
end