bagofcli

2.4.1 • Public • Published

Avatar

Build Status Security Status Dependencies Status Coverage Status Published Version

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:

Readme

Keywords

Package Sidebar

Install

npm i bagofcli

Weekly Downloads

236

Version

2.4.1

License

MIT

Unpacked Size

28.8 kB

Total Files

5

Last publish

Collaborators

  • cliffano