load environment files
Go to file
2022-08-17 21:10:00 +02:00
.gitignore improved gitignore and added LICENSE.md 2022-07-25 16:42:08 +02:00
go.mod moved to git.milar.in 2022-08-03 21:32:44 +02:00
go.sum initial commit 2022-07-13 11:48:12 +02:00
LICENSE.md improved gitignore and added LICENSE.md 2022-07-25 16:42:08 +02:00
main.go allow variable reference in same env file 2022-08-17 00:15:44 +02:00
README.md README updated 2022-08-17 21:10:00 +02:00

loadenv

Loads environment files before running a command without polluting your environment

Source code

You can find the source code here: git.milar.in

Installation

If you have Go installed, you can simply go install the program: go install git.milar.in/milarin/loadenv@latest

There are pre-compiled executables for various platforms on the repository.

License

Distributed under the MIT License. See 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.

$ 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:

$ env | grep USER # current value of $USER
USER=milarin

$ cat .env
# expand $USER reference
USERNAME=$USER

$ loadenv | tail -n 1
USERNAME=milarin