loadenv/README.md

70 lines
1.9 KiB
Markdown
Raw Normal View History

2022-08-17 21:09:15 +02:00
# loadenv
Loads environment files before running a command without polluting your environment
## Source code
2022-08-17 21:10:00 +02:00
You can find the source code here: [git.milar.in](https://git.milar.in/milarin/loadenv)
2022-08-17 21:09:15 +02:00
## Installation
2022-08-17 21:10:00 +02:00
If you have Go installed, you can simply go install the program: `go install git.milar.in/milarin/loadenv@latest`
2022-08-17 21:09:15 +02:00
2022-08-17 21:10:00 +02:00
There are pre-compiled executables for various platforms on the [repository](https://git.milar.in/milarin/loadenv/releases).
2022-08-17 21:09:15 +02:00
## License
2022-08-17 21:10:00 +02:00
Distributed under the MIT License. See [LICENSE.md](https://git.milar.in/milarin/loadenv/src/branch/main/LICENSE.md)
2022-08-17 21:09:15 +02:00
## 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
```