#!/usr/bin/env node const path = require('path'); const { Command } = require('commander'); const program = new Command(); const errorColor = (str) => { // Add ANSI escape codes to display text in red. return `\x1b[31m${str}\x1b[0m`; } program .name(path.parse(process.argv[1]).base) .version('0.0.1') .description('Install package with fake package manager') .usage("-n 3 32 -l x y z -- op") .configureOutput({ // Visibly override write routines as example! //writeOut: (str) => process.stdout.write(`[OUT] ${str}`), writeErr: (str) => process.stdout.write(`[ERR] ${str}`), // Highlight errors in color. outputError: (str, write) => write(errorColor(str)) }); program .option('-n, --number ', 'specify numbers') .option('-l, --letter [letters...]', 'specify letters') .parse(); // console.log('options array'); // console.log(program.options.map(o => o.flags)); // console.log('visible options'); // const helper = program.createHelp(); // console.log(helper.visibleOptions(program).map(o => o.flags)); if (Object.keys(program.opts()).length || program.args.length) { console.log('Options: ', program.opts()); console.log('Remaining arguments: ', program.args); } else { program.outputHelp(); }