node package manager

clintish

event driven options parser

clintish

Command line helper and arguments parser, based upon clint and primeish

npm install clintish colors --save
var clint = require('clintish')();
require('colors');
 
var bool = function(value){
// a boolean helper if a value is present 
if (value === 'no' || value === 'false'){
return false;
}
if (value === 'yes' || value === 'true'){
return true;
}
return value;
};
 
// register full cmd line arg and aliases with some help text 
clint.command('--auto', '-a', 'Watch for changes in less files, recompiles main', bool);
clint.command('--now', '-n', 'Do not keep running, instead - compile now and quit', bool);
clint.command('--no-compress', '-nc', 'Disable compression settings for less output, enabled by default, eg. ' + '--no-compress'.green + ' to disable', bool);
 
// register actual args 
clint.command('--log', '-l', 'Set log level, eg. ' + '-l 3'.green);
 
 
var cliHelp = function(){
// uses command definitions from above 
console.log(clint.help(2, ' : '.grey));
};
 
// now parser of args 
var processArguments = function(args){
args = args || process.argv.splice(2);
 
var options = {
compress: true,
auto: false,
now: false,
log: 0
};
 
if (!args.length){
// call some cli helper. 
return cliHelp();
}
 
clint.on('command', function(namevalue){
switch (name){
case '--no-compress':
options.compress = false;
break;
case '--now':
options.now = true;
break;
case '--auto':
options.auto = true;
break;
case '--log':
options.log = Number(value);
}
});
 
clint.on('complete', function(){
runApp(options);
});
 
clint.parse(args);
};
 
processArguments();

That's about all you need to get going and develop node.js CLI apps.