0.0.3 • Published 10 years ago

clintish v0.0.3

Weekly downloads
21
License
-
Repository
-
Last release
10 years ago

clintish

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

Installing

npm install clintish colors --save

Use

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(name, value){
		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.

0.0.3

10 years ago

0.0.2

11 years ago