]> Sergey Matveev's repositories - zsh-autoenv.git/blobdiff - autoenv.zsh
Merge pull request #26 from blueyed/rename-env-leave
[zsh-autoenv.git] / autoenv.zsh
index 2fb77ce966da17e50d20e7000216e59e307e6dcd..d35b344d16f1efe3e49cfe5a266cf488d3e65f39 100644 (file)
@@ -1,15 +1,15 @@
 # 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.
 : ${AUTOENV_FILE_ENTER:=.env}
 
 # Name of 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?
 : ${AUTOENV_LOOK_UPWARDS:=1}
@@ -66,8 +66,14 @@ if ! zmodload -F zsh/stat b:zstat 2>/dev/null; then
   # 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() {
@@ -250,6 +256,9 @@ _autoenv_source() {
   # 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() {