optimist-config-file
![Build Status](https://travis-ci.org/macbre/optimist-config-file.svg?branch=master)
Extends optimist
npm module with support for JSON/YAML config file and Docker's inspired environment variables handling.
How to use it
Refer to examples/example.js
npm install --save optimist-config-file
const program = require('optimist-config-file');
program
.usage('...')
.describe('config', 'uses JSON or YAML-formatted config file to set parameters').string('config');
program.setConfigFile('config');
program.setReplacementVars(process.env);
const options = program.parse(process.argv);
console.log(options);
Example
YAML config file:
banner: Hello, ${USERNAME}! Greetings from ${HOSTNAME:-The Unknown Machine}.
Invocations with environment variables and options:
./example.js --config config.yaml
Hello, macbre! Greetings from The Unknown Machine.
HOSTNAME=`hostname` ./example.js --config config.yaml
Hello, macbre! Greetings from debian.
./example.js --config config.yaml --banner='foo'
Hello, macbre! Greetings from The Unknown Machine.
As you can see config file values have precedence over command line ones.