32 lines
741 B
Bash
32 lines
741 B
Bash
#!/usr/bin/env zsh
|
|
|
|
local direnv cache=$Z4H/cache/direnv
|
|
if [[ -e $cache ]]; then
|
|
builtin source -- $cache || return
|
|
[[ -n $direnv ]] || return '_z4h_err()'
|
|
fi
|
|
|
|
if (( $1 )); then
|
|
local real_direnv=${commands[direnv]-}
|
|
if [[ $direnv != $real_direnv ]]; then
|
|
if [[ -n $real_direnv ]]; then
|
|
direnv=$real_direnv
|
|
if (( ! _z4h_dangerous_root )); then
|
|
local tmp=$cache.tmp.$$
|
|
typeset -p direnv >$tmp || return
|
|
zf_mv -f -- $tmp $cache || return
|
|
fi
|
|
else
|
|
[[ ! -e $cache ]] || builtin : >$cache || return
|
|
return
|
|
fi
|
|
elif [[ -z $direnv ]]; then
|
|
return
|
|
fi
|
|
elif [[ ! -x $direnv ]]; then
|
|
return
|
|
fi
|
|
|
|
-z4h-direnv-hook $direnv || return
|
|
|
|
typeset -gi _z4h_direnv_initialized=1
|