commands/addons/info.js
'use strict'
let cli = require('heroku-cli-util')
let co = require('co')
let grandfatheredPrice = require('../../lib/util').grandfatheredPrice
let formatPrice = require('../../lib/util').formatPrice
let formatState = require('../../lib/util').formatState
let style = require('../../lib/util').style
let run = cli.command({preauth: true}, function (ctx, api) {
const resolve = require('../../lib/resolve')
return co(function * () {
let addon = yield resolve.addon(api, ctx.app, ctx.args.addon)
let [attachments] = yield [
api.request({
method: 'GET',
path: `/addons/${addon.id}/addon-attachments`
})
]
addon.plan.price = grandfatheredPrice(addon)
addon.attachments = attachments
cli.styledHeader(style('addon', addon.name))
cli.styledHash({
Plan: addon.plan.name,
Price: formatPrice(addon.plan.price),
Attachments: addon.attachments.map(function (att) {
return [
style('app', att.app.name),
style('attachment', att.name)
].join('::')
}).sort(),
'Owning app': style('app', addon.app.name),
'Installed at': (new Date(addon.created_at)).toString(),
'State': formatState(addon.state)
})
})
})
let topic = 'addons'
module.exports = {
topic: topic,
command: 'info',
wantsApp: true,
needsAuth: true,
args: [{name: 'addon'}],
run: run,
usage: `${topic}:info ADDON`,
description: 'show detailed add-on resource and attachment information'
}