2025-01-23 20:37:00 +01:00
|
|
|
# If direnv is not found, don't continue and print a warning
|
|
|
|
if (( ! $+commands[direnv] )); then
|
|
|
|
echo "Warning: direnv not found. Please install direnv and ensure it's in your PATH before using this plugin."
|
|
|
|
return
|
|
|
|
fi
|
2020-05-22 18:29:52 +02:00
|
|
|
|
2020-03-20 13:38:40 +01:00
|
|
|
_direnv_hook() {
|
|
|
|
trap -- '' SIGINT;
|
2023-11-15 12:53:39 +01:00
|
|
|
eval "$(direnv export zsh)";
|
2020-03-20 13:38:40 +01:00
|
|
|
trap - SIGINT;
|
|
|
|
}
|
|
|
|
typeset -ag precmd_functions;
|
2023-11-15 12:53:39 +01:00
|
|
|
if [[ -z "${precmd_functions[(r)_direnv_hook]+1}" ]]; then
|
2020-03-20 13:38:40 +01:00
|
|
|
precmd_functions=( _direnv_hook ${precmd_functions[@]} )
|
|
|
|
fi
|
|
|
|
typeset -ag chpwd_functions;
|
2023-11-15 12:53:39 +01:00
|
|
|
if [[ -z "${chpwd_functions[(r)_direnv_hook]+1}" ]]; then
|
2020-03-20 13:38:40 +01:00
|
|
|
chpwd_functions=( _direnv_hook ${chpwd_functions[@]} )
|
|
|
|
fi
|