Create cli utility for node js easily
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
test
.gitignore
.jshintrc
.travis.yml
LICENSE
README.md
package.json

README.md

Clifier Build Status

Create cli utility for node.js easily, including:

  • Full command/argument parser
  • Consistant inputs and arguments
  • Auto help generator
  • Progress and table generators

Getting Started

Install the module with: npm install clifier

var cli = require('clifier');

cli
    .name('testcommand')
    .version('0.0.1')
    .description('Hello command !');

cli
    .command('testcommand', 'description')
    .input('name', '[a-z]+')
    .argument('-a1, --arg1', 'foo', 'defaultValue', function(value){
        return "filtered value: " + value;
    })
    .argument('-a2, --arg2', 'bar')
    .action((name, arg1, arg2) => {
        cli.log(arg1);
        cli.success('Hello '+name);
        cli.warning("What is that?");
        cli.error(arg2);

        cli.table(['header', 1, 2], [['Content', 1, 2]]);

        var progress = cli.progress("Installing something", 100),
            i        = 0,
            interval = function () {
                i++;
                progress.tick(1);

                if (i == 100) {
                    progress.stop();
                    cli.end();
                } else {
                    setTimeout(interval, 10);
                }
            }

        interval();
    });

cli.run();

API

require('clifier')

return a Cli instance.

Cli API

.version(string) : Cli

Set the version of your cli utility

.name(string) : Cli

Set the name of your cli utility

.description(string) : Cli

Set the description of your cli utility

.write(string)

Write something on the stdout

.style(content, style)

Transform content with asked style. Need to be send to write.

.success(string)

Write a success text on the stdout

.warning(string)

Write a warning text on the stdout

.error(string)

Write an error text on the stderr

.log(string)

Write a log text on the stdout if verbose enabled

.command(name, description) : Command

Create a new command with name and description.

Command API

.input(name, validator) : Command

Add an input to the command.

  • name (string) : name of the input
  • validator (string) : RegExp to validate the input

.argument(name, description, defaultValue, filter) : Command

Add an argument to the command.

  • name (string) : name of the argument (--arg, -arg)
  • description (string) : description of the argument
  • defaultValue (mixed) : default value of the argument if empty
  • filter (function) : filter function for the argument

.action(function(...inputs, ...arguments)) : Command

Action of the command when executed. Function will receive all inputs and arguments in define orders as parameters.

License

See LICENSE file