npm.io
3.1.0 • Published 4 weeks ago

bagofcli

Licence
MIT
Version
3.1.0
Deps
7
Size
71 kB
Vulns
0
Weekly
0
Stars
2

Avatar

Build Status Dependencies Status Code Scanning Status Coverage Status Security Status Published Version

Bag Of CLI

Bag Of CLI contains utility CLI functions.

Define a commands JSON file containing CLI commands with descriptions, arguments, options, example usages. Bag of CLI essentially hooks up each command to a function, and passing the options and arguments to the function.

By default, the command also gets --help and --version flags.

Installation

npm install bagofcli

or as a dependency in package.json file:

"dependencies": {
  "bagofcli": "x.y.z"
}

Usage

Commands:

// create conf/commands.json file containing commands configuration

{
  "options": [
    { "arg": "-f, --file <file>", "desc": "This is a global option, applicable to all commands." }
  ],
  "commands": {
    "command1": {
      "desc": "This is the first command",
      "options": [
        { "arg": "-r, --registry <registry>", "desc": "This is a command option, applicable only to command1"}
      ],
      "examples": [
        "<bin> command1 --registry someregistry"
      ]
    },
    "command2": {
      "desc": "This is the second command",
      "options": [
        { "arg": "-d, --debug", "desc": "This is a command option, applicable only to command2"}
      ],
      "examples": [
        "<bin> command2 --debug"
      ]
    }
  }
}

// setup command handlers

var bag = require('bagofcli');

var actions = {
  commands: {
    command1: {
      action: function (args) {
        console.log(args.registry);
      }
    },
    command2: {
      action: function (args) {
        console.log(args.debug);
      }
    }
  }
};

bag.command(__dirname, actions);

Check out lib/bagofcli.js for more utility functions.

Upgrade

From 0.0.x to 0.1.x .

Update commands.json argument validation rules:

  • notEmpty to required
  • isNumeric to number
  • isEmail to email

Argument/option validation rules are backed by validator. Available rule names: required, empty, blank, string, number, int, decimal, boolean, email, alphaNumeric, anArray, date, ip, cc, phone, postal, ssn.

Colophon

Developer's Guide

Build reports:

Keywords