dotenv: add support for custom env file names (#7861)

This commit is contained in:
Arshad Kazmi 2019-05-20 02:15:27 +05:30 committed by Marc Cornellà
parent 5f7666e20b
commit f960e2be6f
2 changed files with 19 additions and 4 deletions

View file

@ -32,6 +32,17 @@ PORT=3001
``` ```
You can even mix both formats, although it's probably a bad idea. You can even mix both formats, although it's probably a bad idea.
### ZSH_DOTENV_FILE
You can also modify the name of the file to be loaded with the variable `ZSH_DOTENV_FILE`.
If the variable isn't set, the plugin will default to use `.env`.
For example, this will make the plugin look for files named `.dotenv` and load them:
```
# in ~/.zshrc, before Oh My Zsh is sourced:
ZSH_DOTENV_FILE=.dotenv
```
## Version Control ## Version Control
**It's strongly recommended to add `.env` file to `.gitignore`**, because usually it contains sensitive information such as your credentials, secret keys, passwords etc. You don't want to commit this file, it's supposed to be local only. **It's strongly recommended to add `.env` file to `.gitignore`**, because usually it contains sensitive information such as your credentials, secret keys, passwords etc. You don't want to commit this file, it's supposed to be local only.

View file

@ -1,13 +1,13 @@
source_env() { source_env() {
if [[ -f .env ]]; then if [[ -f $ZSH_DOTENV_FILE ]]; then
# test .env syntax # test .env syntax
zsh -fn .env || echo 'dotenv: error when sourcing `.env` file' >&2 zsh -fn $ZSH_DOTENV_FILE || echo "dotenv: error when sourcing '$ZSH_DOTENV_FILE' file" >&2
if [[ -o a ]]; then if [[ -o a ]]; then
source .env source $ZSH_DOTENV_FILE
else else
set -a set -a
source .env source $ZSH_DOTENV_FILE
set +a set +a
fi fi
fi fi
@ -16,4 +16,8 @@ source_env() {
autoload -U add-zsh-hook autoload -U add-zsh-hook
add-zsh-hook chpwd source_env add-zsh-hook chpwd source_env
if [[ -z $ZSH_DOTENV_FILE ]]; then
ZSH_DOTENV_FILE=.env
fi
source_env source_env