/bagofcli

A library for defining CLI commands as JSON configuration

Primary LanguageJavaScriptMIT LicenseMIT

Avatar

Build Status Vulnerabilities Status Dependencies Status Coverage Status Published Version
npm Badge

Bag Of CLI

Bag Of CLI contains CLI utility functions.

This is handy when you want to have a set of common CLI commands with descriptions, options, help, and example usages, by just defining them in a JSON file. Bag of CLI essentially allows you to define those info in a configuration file instead of code.

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

Check out iz for available validation rules.

Colophon

Developer's Guide

Build reports: