stratumn-cli
Version:
CLI tools for Stratumn
51 lines (41 loc) • 1.33 kB
JavaScript
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'))
.parse(process.argv);
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(' ');
}
const header = rpad('NAME', 34) + rpad('ROLE', 14) + rpad('PLAN', 14) + rpad('AGENTS', 8) + 'URL\n';
get('/applications', true)
.then(apps => {
const list = apps.map(app => {
let role = rpad(app.role, 14);
switch (app.role) {
case 'OWNER':
role = chalk.green(role);
break;
case 'ADMIN':
role = chalk.cyan(role);
break;
default:
}
return chalk.bold(rpad(app.name, 34)) + role + rpad(app.plan, 14) +
rpad(app.agents.length + '', 8) + util.format(config.applicationUrl, app.name);
}).join('\n');
process.stdout.write(header + list + '\n', process.exit);
})
.catch(err => {
if (err.code === 'ENOENT') {
process.stdout.write('You must login first\n', () => process.exit(1));
return;
}
handleError(err);
});