/convict-commander

Make a convict commander!

Primary LanguageJavaScriptMIT LicenseMIT

convict-commander

Integrates your convict configuration with the commander.js command-line tool.

As you have defined your config with an schema, you already have all the metadata needed by the command-line. DRY.

Currently, very basic support is implemented, to solve simple use cases.

var convict = require('convict');
var program = require('commander');
var convictCommander = require('convict-commander');

convictCommander(program) // Enable convict-commander 

// Define a schema
var config = convict({
  port: {
    doc: "The port to bind",
    format: "port",
    default: 3000,
    env: "PORT",
    arg: "port" // --> this is the command-line parameter. 
  }
});

program
  .version('0.0.1')
  .convict(config) // Add the metadata
  .parse(process.argv);

That's it.

$> node index.js --help

  Usage: index [options]

  Options:

    -h, --help     output usage information
    -V, --version  output the version number
    --port [port]  The port to bind [default: 3000]
                   Environment var: PORT

LICENSE

MIT