diff --git a/README.md b/README.md new file mode 100644 index 0000000..d9a0695 --- /dev/null +++ b/README.md @@ -0,0 +1,69 @@ +# loadenv + +Loads environment files before running a command without polluting your environment + +## Source code + +You can find the source code here: https://git.tordarus.net/Tordarus/loadenv + +## Installation + +If you have Go installed, you can simply go install the program: `go install git.tordarus.net/Tordarus/loadenv@latest` + +There are pre-compiled executables for various platforms on the [repository](https://git.tordarus.net/Tordarus/loadenv/releases). + +## License + +Distributed under the MIT License. See [LICENSE.md](https://git.tordarus.net/Tordarus/loadenv/src/branch/main/LICENSE.md) + +## Usage + +`loadenv` loads the environment file provided via `-f` into the environment and runs the command provided after the arguments. +If no file is provided, `.env` is used by default. +If no command is provided, `loadenv` prints all environment variables to stdout. + +--- + +The variables will only be available to the given command. They will be deleted after the command exits. +`loadenv` can be useful when working with programs which heavily use environment variables. + +```sh +$ cat .env +# production server configuration +DATABASE_HOST=prod-server.com +DATABASE_USER=milarin +DATABASE_PASS=my-super-secure-password + +$ # show the 3 last added env variables +$ loadenv | tail -n 3 +DATABASE_HOST=prod-server.com +DATABASE_USER=milarin +DATABASE_PASS=my-super-secure-password + +$ cat dev.env +# development server configuration +DATABASE_HOST=dev-server.com +DATABASE_USER=milarin +DATABASE_PASS=my-super-secure-password + +$ # load dev.env into environment and run the command env. show last 3 lines +$ loadenv -f dev.env env | tail -n 3 +DATABASE_HOST=dev-server.com +DATABASE_USER=milarin +DATABASE_PASS=my-super-secure-password +``` + +environment variables in that file will be expanded: + +```sh +$ env | grep USER # current value of $USER +USER=milarin + +$ cat .env +# expand $USER reference +USERNAME=$USER + +$ loadenv | tail -n 1 +USERNAME=milarin +``` +