@oberd/env-init

1.1.3 • Public • Published

Environment Initialization Helper

Usage

npm i -g @oberd/env-init

  Usage: env-init [options]

  Options:

    -h, --help            output usage information
    -V, --version         output the version number
    -d --directory [dir]  Directory of package.json config for env-init
    -f --force            Force overwrite of existing confguration

Problem

Environment configuration when starting development on a new project can be confusing. Fortunately, we can program things to help! Many times this type of thing is solved by source controlling individual "example" configuration files, and then manually customizing them for your local development environment.

Instead of traditional default files, env-init can help you create a guided tour of initialization on the command prompt, complete with defaults, and providing transparency on what settings are required to run the application.

Configuration (For Project Authors)

All of the configuration for env-init is done in the "env-init" key in package.json. The individual settings can be output to either a file, or etcd adapter.

Example

{
	"env-init": {
		"adapter": {
			"type": "file",
			"destination": ".env.local"
		},
		"prompts": [
			{
				"name": "DOMAIN",
				"description": "What domain should I use for this app?",
				"default": "myapp.company.com"
			},
			{
				"name": "GITHUB_OAUTH_TOKEN",
				"description": "Please enter a github oauth token for use with composer and npm"
			}
		]
	}
}

Upon running the command line env-init in a directory containing a package.json with the config above, env-init will prompt the user using flatiron prompts, and output the result to a file. This could be (by default):

Any prompt that does not have a default will search the user environment for that variable and fill in a default if the variable is set. For instance, if you have a global GITHUB_OAUTH_TOKEN set in your local, the default will auto-populate into env-init.

DOMAIN=myapp.company.com
GITHUB_OAUTH_TOKEN=1090123asdfaldf900219

Adapter Options

{
	"env-init": {
		"adapter": {
			"type": "etcd",
			"destination": "/env/quest-api"
		}
	}
}

Etcd Adapter

To use the Etcd Adapter, you must have an ETCDCTL_PEERS environment variable pointed at an etcd cluster endpoint (e.g. http://127.0.0.1:4001)

Dependencies (3)

Dev Dependencies (8)

Package Sidebar

Install

npm i @oberd/env-init

Weekly Downloads

5

Version

1.1.3

License

ISC

Last publish

Collaborators

  • oberd