Adds a cli
method to base
for mapping parsed command line arguments existing [base][] methods or custom functions.
The goal is to simplify the process of settings up command line logic for your [base][] application.
var cli = require('{%= name %}');
var Base = require('base');
var app = new Base();
// register the plugin
app.use(cli());
This adds a cli
object to [base][] with the following (chainable) methods (base.cli.*
):
.map()
- .map: add mappings from command line flags/options to custom functions orbase
methods.alias()
- .alias: similar tomap
but creates simple aliases. For example,alias('show', 'get')
would invoke the.get()
method when--show
is passed on the command line.process()
- .process: once all mappings are defined, passargv
to.process()
to iterate over the mappings, passingargv
as context.
var argv = require('minimist')(process.argv.slice(2));
var expand = require('expand-args');
var cli = require('{%= name %}');
var Base = require('base');
var app = new Base();
app.use(cli());
app.cli
.map('get', function(key, val) {
app.get(key, val);
})
.map('set', function(key, val) {
app.set(key, val);
})
app.cli.process(expand(argv), function(err) {
if (err) throw err;
});
// command line args:
//
// '--set=a:b --get=a'
//
// prints:
//
// 'a'
//
The following commands are currently supported.
{%= apidocs("lib/**/*.js") %}