0.2.0 • Published 9 years ago
impulse-bin v0.2.0
impulse-bin
node.js CLI module runner
- Adapters for commander.js and node-optimist
- Basic set of long-con console loggers for stdout/stderr/verbose with color
Purpose
- CLI scripts that are easier to test without running the executable.
- Reduce boilerplate.
Example
bin/myproj
Executables are reduced to thin loading calls.
var bin = require('impulse-bin').create();
bin.run(require('commander'), require('./lib/cli/myproj'));
// Or if your CLI module's run() function is a generator:
bin.runGenerator(require('commander'), require('./lib/cli/myproj'));
lib/cli/myproj.js
While the rest is separated into input parsing and input consumption.
init()
receives a CLI inputprovider
likecommander.js
ornode-optimist
for you to configure.run()
receives the parsedthis.options
andthis.args
from theprovider
.
exports.init = function(provider) {
provider.option('-c, --config <dir>', 'Config file');
};
exports.run = function() {
this.exitOnMissingOption(['config']);
this.stdout('using config file: %s', this.clc.green(this.options.config));
// ...
};
Pass arguments from bin/myproj
to the lib/cli/myproj.js
// bin/myproj
bin.run(require('commander'), require('./lib/cli/myproj'), 1, 2, 3);
// lib/cli/myproj.js
exports.run = function() {
console.log([].slice.call(arguments)); // [1, 2, 3]
};
Installation
NPM
npm install impulse-bin
Documentation
License
MIT
Tests
npm test