stratumn-cli
Version:
CLI tools for Stratumn
58 lines (45 loc) • 1.36 kB
JavaScript
import commander from 'commander';
import chalk from 'chalk';
import readPackageSync from '../utils/readPackageSync';
import get from '../utils/get';
commander
.version(readPackageSync('version'))
.usage('<app-name>')
.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] + '/users', true)
.then(users => {
let content = '';
content += rpad('EMAIL', 34) + rpad('ROLE', 14) + 'NAME\n';
users.forEach(user => {
content += chalk.bold(rpad(user.email.substr(0, 30), 34));
switch (user.role) {
case 'OWNER':
content += chalk.green(rpad(user.role, 14));
break;
case 'ADMIN':
content += chalk.cyan(rpad(user.role, 14));
break;
default:
content += rpad(user.role, 14);
}
content += user.firstName + ' ' + user.lastName;
content += '\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);
});