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
This commit is contained in:
Jyrki Pulliainen 2015-01-07 18:15:00 +01:00
parent 175b4a8073
commit 833e6f5958

View File

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