/// // // TODO: improve tests // [the code below was extracted from the documentation and examples, but does not seem to cover all cases] // import program = require("commander"); program .version('0.0.1') .option('-C, --chdir ', 'change the working directory') .option('-c, --config ', 'set config path [./deploy.conf]') .option('-T, --no-tests', 'ignore test hook') // $ deploy setup stage // $ deploy setup program .command('setup [env]') .description('run setup commands for all envs') .action(function (env) { env = env || 'all'; console.log('setup for %s env(s)', env); }); // $ deploy stage // $ deploy production program .command('*') .action(function (env) { console.log('deploying "%s"', env); }); program.option('-p, --pepper', 'add pepper'); program.option('-C, --chdir ', 'change the working directory'); program.prompt('Username: ', function (name) { console.log('hi %s', name); }); program.prompt('Description:', function (desc) { console.log('description was "%s"', desc.trim()); }); program.promptForNumber("Enter a number:", (n) => { }); program.confirm("Confirm? ", (f) => { }); program.choose(["a", "b", "c"], (i) => { });