Files
pyenv-virtualenv/bin/pyenv-sh-deactivate
2015-11-08 08:34:43 +00:00

117 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Summary: Deactivate virtual environment
#
# Usage: pyenv deactivate
#
# Deactivate a Python virtual environment.
set -e
[ -n "$PYENV_DEBUG" ] && set -x
unset FORCE
unset QUIET
unset VERBOSE
while [ $# -gt 0 ]; do
case "$1" in
"--force" )
FORCE=1
;;
"--no-error" | "--quiet")
QUIET=1
;;
"--verbose" )
VERBOSE=1
;;
* )
break
;;
esac
shift 1
done
if [ -z "${VIRTUAL_ENV}" ]; then
if [ -z "$QUIET" ]; then
echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2
fi
echo "false"
exit 1
fi
shell="$(basename "${PYENV_SHELL:-$SHELL}")"
prefix="${VIRTUAL_ENV}"
if [[ "${prefix}" != "${prefix%/envs/*}" ]]; then
venv="$(basename "${prefix%/envs/*}")/envs/${prefix##*/}"
else
venv="${prefix##*/}"
fi
echo "pyenv-virtualenv: deactivate ${venv}" 1>&2
if [ -n "${PYENV_ACTIVATE_SHELL}" ]; then
# shell version set in pyenv-sh-activate should be unset
# https://github.com/yyuu/pyenv-virtualenv/issues/61
case "$shell" in
fish )
cat <<EOS
set -e PYENV_VERSION;
set -e PYENV_ACTIVATE_SHELL;
EOS
;;
* )
cat <<EOS
unset PYENV_VERSION;
unset PYENV_ACTIVATE_SHELL;
EOS
;;
esac
fi
# virtualenv/pyvenv
case "${shell}" in
fish )
cat <<EOS
setenv PYENV_DEACTIVATE "${VIRTUAL_ENV}";
set -e VIRTUAL_ENV;
EOS
;;
* )
cat <<EOS
export PYENV_DEACTIVATE="${VIRTUAL_ENV}";
unset VIRTUAL_ENV;
EOS
;;
esac
# anaconda/miniconda
if [ -n "${CONDA_DEFAULT_ENV}" ]; then
case "${shell}" in
fish )
echo "set -e CONDA_DEFAULT_ENV;"
;;
* )
echo "unset CONDA_DEFAULT_ENV;"
;;
esac
fi
if [ -n "${_OLD_VIRTUAL_PYTHONHOME}" ]; then
case "${shell}" in
fish )
cat <<EOS
setenv PYTHONHOME "${_OLD_VIRTUAL_PYTHONHOME}";
set -e _OLD_VIRTUAL_PYTHONHOME;
EOS
;;
* )
cat <<EOS
export PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME}";
unset _OLD_VIRTUAL_PYTHONHOME;
EOS
;;
esac
fi