]> Sergey Matveev's repositories - zsh-autoenv.git/commitdiff
README: improve .venv example
authorDaniel Hahler <git@thequod.de>
Fri, 14 Sep 2018 02:01:21 +0000 (04:01 +0200)
committerDaniel Hahler <git@thequod.de>
Fri, 14 Sep 2018 02:01:21 +0000 (04:01 +0200)
README.md
autoenv.zsh

index fe81fe643195e6e6f088ecb38a6ce9e56cf14d66..c0036cef2da23337006c4ac3b1107435ef360c29 100644 (file)
--- a/README.md
+++ b/README.md
@@ -191,20 +191,31 @@ if [[ $autoenv_event == 'enter' ]]; then
 
     setopt localoptions extendedglob
     local -a venv
-    venv=(./(../)#.venv(NY1:a))
+    venv=(./(../)#.venv(NY1:A))
 
     if [[ -n "$_ZSH_ACTIVATED_VIRTUALENV" && -n "$VIRTUAL_ENV" ]]; then
       if ! (( $#venv )) || [[ "$_ZSH_ACTIVATED_VIRTUALENV" != "$venv[1]" ]]; then
         unset _ZSH_ACTIVATED_VIRTUALENV
         echo "De-activating virtualenv: ${(D)VIRTUAL_ENV}" >&2
-        deactivate
+
+        # Simulate "deactivate", but handle $PATH better (remove VIRTUAL_ENV).
+        if ! autoenv_remove_path $VIRTUAL_ENV/bin; then
+          echo "warning: ${VIRTUAL_ENV}/bin not found in \$PATH" >&2
+        fi
+
+        # NOTE: does not handle PYTHONHOME/_OLD_VIRTUAL_PYTHONHOME
+        unset _OLD_VIRTUAL_PYTHONHOME
+        # NOTE: does not handle PS1/_OLD_VIRTUAL_PS1
+        unset _OLD_VIRTUAL_PS1
+        unset VIRTUAL_ENV
       fi
     fi
 
     if [[ -z "$VIRTUAL_ENV" ]]; then
       if (( $#venv )); then
         echo "Activating virtualenv: ${(D)venv}" >&2
-        source $venv[1]/bin/activate
+        export VIRTUAL_ENV=$venv[1]
+        autoenv_prepend_path $VIRTUAL_ENV/bin
         _ZSH_ACTIVATED_VIRTUALENV="$venv[1]"
       fi
     fi
index 598443b65bb68ef2d8b016c3af045a82541ae4d5..fe97d74fe72b8f0db252c457faee51b4df06c7b6 100644 (file)
@@ -476,6 +476,7 @@ _autoenv_chpwd_handler() {
   fi
 
   if ! _autoenv_check_authorized_env_file $env_file; then
+    _autoenv_debug "Not authorized: $env_file"
     return
   fi