You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
898 B
35 lines
898 B
source_env() { |
|
if [[ -f $ZSH_DOTENV_FILE ]]; then |
|
if [ "$ZSH_DOTENV_PROMPT" != "false" ]; then |
|
# confirm before sourcing file |
|
local confirmation |
|
# print same-line prompt and output newline character if necessary |
|
echo -n "dotenv: source '$ZSH_DOTENV_FILE' file in the directory? (Y/n) " |
|
read -k 1 confirmation; [[ "$confirmation" != $'\n' ]] && echo |
|
# only bail out if confirmation character is n |
|
if [[ "$confirmation" = [nN] ]]; then |
|
return |
|
fi |
|
fi |
|
|
|
# test .env syntax |
|
zsh -fn $ZSH_DOTENV_FILE || echo "dotenv: error when sourcing '$ZSH_DOTENV_FILE' file" >&2 |
|
|
|
if [[ -o a ]]; then |
|
source $ZSH_DOTENV_FILE |
|
else |
|
set -a |
|
source $ZSH_DOTENV_FILE |
|
set +a |
|
fi |
|
fi |
|
} |
|
|
|
autoload -U add-zsh-hook |
|
add-zsh-hook chpwd source_env |
|
|
|
if [[ -z $ZSH_DOTENV_FILE ]]; then |
|
ZSH_DOTENV_FILE=.env |
|
fi |
|
|
|
source_env
|
|
|