Skip to content
Loads environment from ndjson files, selected by `jq ._name`
Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
README.md
ndjson-env

README.md

ndjson-env - Loads environment from ndjson files, selected by jq ._name

Description

I have a tool called pgpass-env that, given a suitably commented PostgreSQL ~/.pgpass file will allow you to easily set the environmental variables for software that doesn't support reading from that format.

Thinking about this problem, it seems to be a general problem:

  • Given a file, which somehow has a list of sets of values of environmental variables you may want to apply.
  • And a way to identify which values you wish to apply.
  • Apply those environmental variables.

This is what this software does.

Example

The environmental variables are stored in any file as NDJSON. For example a file that sets up environmental variables for the JDK might look something like this:

{"_name": "JDK18", "JAVA_HOME": "/use/local/j2sdk-1.8"}
{"_name": "JDK111", "JAVA_HOME": "/use/local/j2sdk-1.11", "CLASSPATH": "/somewhere/else"}

This could might be stored in ~/.jdk-env-vars, if it were you could apply the JDK111 environmental variables using the following:

. ndjson-env -f ~/.jdk-env-vars JDK111

Once you've ran this the JAVA_HOME and CLASSPATH environmental variables will be set up. NOTE: The . before the command is important, it pulls the environmental variables defined in the script into your current environment.

Usage

NAME:
  ndjson-env - Loads environment from ndjson files, selected by `jq ._name`

USAGE:
  ndjson-env -f FILE [NAME_OF_ENV_SET]

GLOBAL OPTIONS:
  -f    The file to load environment sets from
  -h    Get (this) help

ARGUMENTS:
  NAME_OF_ENV_SET    The name of the environment to list (will list all if not specified)

Installation

Installation is simple with BASH:

mkdir -p ~/.local/bin && cp ./ndjson-env ~/.local/bin/ndjson-env && chmod +x ~/.local/bin/ndjson-env
You can’t perform that action at this time.