# Initially based on
# https://github.com/joshuaclayton/dotfiles/blob/master/zsh_profile.d/autoenv.zsh
-export AUTOENV_ENV_FILENAME=$HOME/.env_auth
-[ -e $AUTOENV_ENV_FILENAME ] || touch $AUTOENV_ENV_FILENAME
+# File to store confirmed authentication into.
+: ${AUTOENV_ENV_FILENAME:=~/.env_auth}
-# Name of file to look for when entering directories.
+# Name of the file to look for when entering directories.
: ${AUTOENV_FILE_ENTER:=.env}
-# Name of file to look for when leaving directories.
+# Name of the file to look for when leaving directories.
# Requires AUTOENV_HANDLE_LEAVE=1.
-: ${AUTOENV_FILE_LEAVE:=.env.leave}
+: ${AUTOENV_FILE_LEAVE:=.env_leave}
-# Look for .env in parent dirs?
+# Look for .env files in parent dirs?
: ${AUTOENV_LOOK_UPWARDS:=1}
# Handle leave events when changing away from a subtree, where an "enter"
# terse output instead of format, which is not supported by busybox.
# Assume '+mtime' as $1.
_autoenv_get_file_mtime() {
- setopt localoptions pipefail
- stat -t $1 2>/dev/null | cut -f13 -d ' ' || echo 0
+ # setopt localoptions pipefail
+ local stat
+ stat=$(stat -t $1 2>/dev/null)
+ if [[ -n $stat ]]; then
+ echo ${${(s: :)stat}[13]}
+ else
+ echo 0
+ fi
}
else
_autoenv_get_file_mtime() {
# ${env_file:h}.
fi
- # Change to directory of env file, source it and cd back.
- local new_dir=$PWD
+ # Source the env file.
_autoenv_debug "== SOURCE: ${bold_color:-}$env_file${reset_color:-}\n PWD: $PWD"
- (( _autoenv_debug_indent++ ))
+ : $(( _autoenv_debug_indent++ ))
source $env_file
- (( _autoenv_debug_indent-- ))
+ : $(( _autoenv_debug_indent-- ))
_autoenv_debug "== END SOURCE =="
if [[ $autoenv_event == enter ]]; then
# This should not get done for recursion (via autoenv_source_parent),
# and can be useful to have in general after autoenv was used.
# unset autoenv_event autoenv_from_dir autoenv_to_dir autoenv_env_file
+ if [[ $autoenv_event == leave ]]; then
+ unset autoenv_env_file
+ fi
}
_autoenv_get_file_upwards() {
_autoenv_chpwd_prev_dir=$PWD
- (( _autoenv_debug_indent++ ))
+ : $(( _autoenv_debug_indent++ ))
}
# }}}