1.0.0 • Published 9 years ago

blum v1.0.0

Weekly downloads
5
License
BSD
Repository
github
Last release
9 years ago

Blum

Blum is a configuration document generator used to create Hapi manifest json files using Confidence. It creates a manifest.config.json file through an npm prestart script that Rejoice (the Hapi CLI) can consume on the command line with rejoice -c manifest.config.json.

This could be used for quick A/B testing at a high level or for simple things such as environment based server configuration.

While this was developed to be used in conjunction with a Hapi it can be used anywhere to auto generate a configuration.json based on the Confidence style criteria.

Version npm Build Status Coveralls branch Dependencies


Command Line

Blum takes the following flag options:

  • -c - a required file path for criteria.js to be used by confidence.
  • -m - a required file path for manifest.js to be edited by confidence and consumed by Hapi.
  • -f - an optional output file name/path, defaults to ./manifest.config.json

Example

Use it straight from the command line:

$ blum -c criteria.js -m manifest.js -f manifest.config.json

Use it as a script in your package.json before calling Hapi:

"prestart":  "blum -c config/criteria.js -m config/manifest.js -f config.json"
"start": 	 "rejoice -c manifest.config.json"

More examples

There is an example directory which contains a mock package.json file. Running $ npm start from within this folder will generate a manifest config file based on the details being passed from the package.json file. After it's created it will then run a Hapi server via the Rejoice CLI.

You can modify these settings as you like. If you add an environment variable before the call you will see a different manifest config file generated, this is the magic of Confidence.

Criteria & Manifest files

Ensure that your criteria.js and manifest.js files both export a valid object that can be consumed by Confidence. Please check their docs for more details on this.

Example Criteria.js

module.exports = {
	env: process.env.ENVIRONMENT
};

Example Manifest.js

The below example prettifies the jade html by default but when run in a production environment the html is minified.

module.exports = {
	connections: [
    	{
        	port: 3000,
        	labels: [
            	'http'
        	]
    	}
	],
	server: {},
	plugins: {
		visionary: {
        	engines: {
            	jade: 'jade'
        	},
        	path: './views',
        	compileOptions: {
            	$filter: 'env',
            	production: {
                	pretty: false
            	},
            	$default: {
                	pretty: true
            	}
        	}
		}
	}
};
1.0.0

9 years ago

0.3.1

9 years ago

0.3.0

9 years ago

0.2.3

9 years ago

0.2.2

9 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.1

10 years ago