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.
npm install bagofcli
or as a dependency in package.json file:
"dependencies": {
"bagofcli": "x.y.z"
}
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.
From 0.0.x to 0.1.x .
Update commands.json argument validation rules:
notEmpty
torequired
isNumeric
tonumber
isEmail
toemail
Check out iz for available validation rules.
Build reports: