iced
Version:
Simple backup tool that uses node to talk to Amazon Glacier
55 lines (45 loc) • 1.45 kB
text/coffeescript
exports.command =
description: 'Displays and manages running (and complete) jobs.'
if require.main is module
glacier = require '../lib/glacier'
columnify = require 'columnify'
moment = require 'moment'
humanize = require 'string-humanize'
nopt = require 'nopt'
knownOpts =
completed: Boolean
failed: Boolean
shortHands =
complete: ['--completed']
c: ['--completed']
fail: ['--failed']
f: ['--failed']
parsedOptions = nopt(knownOpts, shortHands, process.argv)
vaultName = parsedOptions.argv.remain.shift()
unless vaultName?
console.error """
usage: iced jobs [--completed] <vault>
List the jobs associated with <vault>
"""
process.exit 1
statuscode = if parsedOptions.failed
'Failed'
else if parsedOptions.completed
'Succeeded'
else
'InProgress'
glacier.listJobs {vaultName, statuscode}, (err, data) ->
if err?
console.error err.message
process.exit 1
if data.JobList.length is 0
console.error "No jobs found"
process.exit 0
jobs = data.JobList.map (job) ->
action: if job.Action is 'ArchiveRetrieval' then 'archive' else 'inventory'
status: if job.StatusMessage? then job.StatusMessage else humanize(job.StatusCode).toLowerCase()
started: moment(job.CreationDate).format('YYYY MMM D, hh:mma')
id: job.JobId
desc: job.JobDescription
console.log columnify(jobs)
process.exit 0