UNPKG

stratumn-cli

Version:
89 lines (73 loc) 2.41 kB
import util from 'util'; import commander from 'commander'; import chalk from 'chalk'; import readPackageSync from '../utils/readPackageSync'; import get from '../utils/get'; import config from '../config'; commander .version(readPackageSync('version')) .usage('<app-name>') .option('-s, --script', 'show script') .option('-j, --job', 'show active or last job') .parse(process.argv); if (commander.args.length !== 1) { commander.help(); } function handleError(err) { process.stderr.write(err.message + '\n', () => process.exit(1)); } function rpad(str, cols) { return str + new Array(Math.max(0, cols - str.length) + 1).join(' '); } get('/applications/' + commander.args[0], true) .then(app => { let content = ''; if (commander.script) { content = app.script; } else if (commander.job) { content += rpad('TYPE', 16) + app.job.type + '\n'; content += rpad('STATE', 16) + app.job.state + '\n'; if (app.job.type === 'DEPLOY') { content += rpad('PLAN', 16) + app.job.plan + '\n'; content += rpad('AGENTS', 16) + app.job.agentCount + '\n'; } } else { content += rpad('NAME', 16) + chalk.bold(app.name) + '\n'; let role = rpad(app.role, 14); switch (app.role) { case 'OWNER': role = chalk.green(role); break; case 'ADMIN': role = chalk.cyan(role); break; default: } content += rpad('ROLE', 16) + role + '\n'; content += rpad('PLAN', 16) + app.plan + '\n'; content += rpad('URL', 16) + util.format(config.applicationUrl, app.name) + '\n'; content += rpad('AGENTS', 16) + rpad('ID', 16) + rpad('NAME', 24) + 'STATE\n'; app.agents.forEach(agent => { content += rpad('', 16) + rpad(agent.id.substr(0, 12), 16); content += rpad(agent.name, 24); switch (agent.state) { case 'RUNNING': content += chalk.green(agent.state) + '\n'; break; case 'STOPPED': content += chalk.red(agent.state) + '\n'; break; default: content += agent.state + '\n'; } }); } process.stdout.write(content, process.exit); }) .catch(err => { if (err.code === 'ENOENT') { process.stdout.write('You must login first\n', () => process.exit(1)); return; } handleError(err); });