Skip to content

Easily handle --help and --version arguments in your CLI application

License

Notifications You must be signed in to change notification settings

eush77/help-version

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm

help-version

Build Status Dependency Status

Anything you wanted to do with --help and --version:

  • checks these arguments in process.argv, so you don't have to;
  • extracts version from your package.json file;
  • returns functions that give you both --help and --version, in case you need to handle them differently;
  • returns the function that prints --help and exits with the given code;
  • highly configurable: you can set process.argv, stdout and stderr streams, and even process.exit function — this means testing won't be a problem.

Example

#!/usr/bin/env node

var Cli = require('help-version');

var cli = Cli('Usage:  my-cat [file]');

cli.version()
//=> "v0.1.0"

if (process.argv.length != 3) {
  // Show help and exit with code 1.
  cli.help(1);
}

fs.createReadStream(process.argv[2])
  .pipe(process.stdout);

Catches --help and --version automatically.

$ ./cat.js --help
Usage:  my-cat [file]
$ ./cat.js --version
v0.1.0
$ ./cat.js file.txt
contents of file.txt

API

cli = Cli(helpText, [opts])

  • helpText {String | Function} — help text to print on --help, or function to produce it.

Checks opts.argv for --help or --version.

  1. If --help is found, prints helpText to opts.stdout and calls opts.exit.

  2. If --version is found, prints app version (determined from the version field from your local package.json) to opts.stdout and calls opts.exit.

Returns object with two (bound) methods: cli.help([code], [stream]) and cli.version([code], [stream]).

Option Default
argv process.argv.slice(2)
exit([code]) process.exit
stdout process.stdout
stderr process.stderr

cli.help([code], [stream])

With no arguments, returns the help string.

With one or two arguments, writes it to stream instead and exits (via opts.exit) with code. stream defaults to opts.stdout if code==0 and opts.stderr otherwise.

cli.version([code], [stream])

With no arguments, returns the version string.

With one or two arguments, writes it to the stream instead and exits (via opts.exit) with code. stream defaults to opts.stdout if code==0 and opts.stderr otherwise.

Install

npm install help-version

License

MIT

About

Easily handle --help and --version arguments in your CLI application

Resources

License

Stars

Watchers

Forks

Packages

No packages published