From f81913205e963fe0446aebd678b87bc4be83b21a Mon Sep 17 00:00:00 2001 From: Pavel Puchkin Date: Sat, 27 Apr 2013 01:06:48 -0300 Subject: [PATCH] Fixes venvwrapper deactivate when switching git repos --- .../virtualenvwrapper/virtualenvwrapper.plugin.zsh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index a15bff145..e46cff93a 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -20,17 +20,25 @@ if [[ -f "$wrapsource" ]]; then if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" + else + _deactivate fi fi - elif [ $CD_VIRTUAL_ENV ]; then + else # We've just left the repo, deactivate the environment # Note: this only happens if the virtualenv was activated automatically - deactivate && unset CD_VIRTUAL_ENV + _deactivate fi unset PROJECT_ROOT unset ENV_NAME } + function _deactivate() { + if [[ -n $CD_VIRTUAL_ENV ]]; then + deactivate && unset CD_VIRTUAL_ENV + fi + } + # New cd function that does the virtualenv magic function cd { builtin cd "$@" && _workon_cwd