A complete library to develop complete CLI programs.
A complete library to quickly develop CLI programs. Check out the features:
Install with: npm i -P eclipt
const Eclipt = require('eclipt');
// The first temp session is started automatically here,
// A diretory will be creted inside your OS's temp dir.
let cli = new Eclipt(
'my-cli-tool', // your tool's command name
{ // Available options object
'opt-1': [ false, 'A cool options', 'string' ], // A regular option with a value
'flag-1': [ false, 'A cool flag' ], // An option that doesn't receive a value
'flag-2': [ 'f', 'A flag with a shorthand notation' ], // You may use -f
'opt-2': [ false , 'An option with a default value', 'string', 'my-default' ]
}
);
// Read process argv and generate the cli data.
let input = cli.execute();
console.log(input);
If you have found any problems with this module, please:
~bug
.We will make sure to take a look when time allows us.
If you wish to get that awesome feature or have some advice for us, please:
~proposal
.If you have spotted any enhancements to be made and is willing to get your hands
dirty about it, fork us and
submit your merge request
so we can collaborate effectively.
An object containing CLI options definition. Each key in the object is the name
of an option and has assigned to it an array with the following data:
string: [ // Option name
false || character // Define a property shorthand form if needed.
string // Describes the option (used in help output).
null || string // Name of the expected option value. Leave it blank to define a flag.
null || string // A default value for the option.
]
To create a new CLI, use the Eclipt constructor with the following arguments:
let cli = new Eclipt(
'my-tool', // Your tool's command name
options, // The available options object
settings // General settings for your CLI
);
These are the settings supported by the constructor:
{
expectedArgs: array, // Names to describe the expect positional arguments
noArgs: boolean, // Whether positional arguments are supported or not
requireCommand: boolean, // Whether a command is required or not
getVersion: aFunction, // Function that retrieves the version for your tool
onOutput: aFunction // To be executed whenever the cli means to output. Ex.: help or version output. Defaults to `console.log`
}
You can add commands to your tool with cli.setCommand
as follows:
cli.setCommand(name, { // The command name and settings object
expectedArgs: array, // Names to describe the expect positional arguments
options: options, // The options object for the command
summary: string, // A brief explanation of the command
callback: aFunction, // Function to be executed if the command is called
noArgs: boolean // Whether positional arguments are supported or not
});