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
MIT