Skip to content
This repository has been archived by the owner on Jun 17, 2020. It is now read-only.

Extends optimist with support for JSON/YAML config file and Docker's inspired environment variables handling

License

Notifications You must be signed in to change notification settings

macbre/optimist-config-file

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

optimist-config-file npm version Build Status

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');

// handle --config option for passing YAML/JSON config files
program.setConfigFile('config');

// allow env variables to be passed
program.setReplacementVars(process.env);

// parse options
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.

About

Extends optimist with support for JSON/YAML config file and Docker's inspired environment variables handling

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published