浏览代码

virtualenvwrapper: Deactivate only if in virtualenv

If user manually deactivates the virtualenv when using this mode, zsh
will produce following error:

    deactivate:12: command not found: virtualenv_deactivate

To avoid this, check that the VIRTUAL_ENV flag is set before trying to
automatically deactivate the virtual environment.

Fixes #2185
Jyrki Pulliainen 10 年之前
父节点
当前提交
833e6f5958
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh

+ 1 - 1
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh

@@ -38,7 +38,7 @@ if (( $+commands[$virtualenvwrapper] )); then
                 source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME"
               fi
             fi
-          elif [ $CD_VIRTUAL_ENV ]; then
+          elif [[ -n $CD_VIRTUAL_ENV && -n $VIRTUAL_ENV ]]; then
             # We've just left the repo, deactivate the environment
             # Note: this only happens if the virtualenv was activated automatically
             deactivate && unset CD_VIRTUAL_ENV