#!/usr/bin/env node
const program = require('commander');
const colors = require('colors');
const pkg = require('./package.json');
function range(val, d) {
return val.split('..').map(Number);
} function list(val) {
return val.split(',');
} function collect(val, memo) {
memo.push(val);
return memo;
} function increaseVerbosity(v, total) {
return total + 1;
}
program
.version(pkg.version, '-v, --version')
.option('-u, --username <firstname>', 'add username')
.option('-p, --password [num]', 'add password')
.option('--no-sauce', 'Remove sauce') // .option('-i, --integer <n>', 'An integer argument', parseInt)
.option('-f, --float <n>', 'A float argument', parseFloat)
.option('-r, --range [a..b]', 'A range', range, 12)
.option('-l, --list <items>', 'A list', list)
.option('-o, --optional [value]', 'An optional value')
.option('-c, --collect [value]', 'A repeatable value', collect, [])
.option('-v, --verbose', 'A value that can be increased', increaseVerbosity, 0) program
.command('create <project> [rest...]')
.alias('init')
.description('ssy cli description')
.option('-i, --information [info]', 'add information')
.action((projectName, cmd, options)=>{
console.log("ssy",projectName, cmd, options.information)
}) if (!process.argv.slice(2).length) {
program.outputHelp(make_red);
} function make_red(txt) {
return colors.red(txt); //display the help text in red on the console
}
// must be before .parse() since
// node's emit() is immediate
program.on('--help', function(){
console.log('')
console.log('Examples:');
console.log(' $ ssy --help');
console.log(' $ ssy -h');
});
program.parse(process.argv);
// console.log(program);
05-07 15:25