Skip to content

Latest commit

 

History

History
61 lines (45 loc) · 1.5 KB

.verb.md

File metadata and controls

61 lines (45 loc) · 1.5 KB

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.

Usage

var cli = require('{%= name %}');
var Base = require('base');
var app = new Base();

// register the plugin
app.use(cli());

API

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 or base methods
  • .alias() - .alias: similar to map 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, pass argv to .process() to iterate over the mappings, passing argv as context.

Example

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'
//   

Commands

The following commands are currently supported.

{%= apidocs("lib/**/*.js") %}