Files
pyenv-virtualenv/bin/pyenv-sh-deactivate
Yamashita, Yuu 0fa5de07c9 fix broken tests
2015-11-06 18:26:23 +00:00

114 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 QUIET
unset VERBOSE
while [ $# -gt 0 ]; do
case "$1" in
"--no-error" | "--quiet")
QUIET=1
;;
"--verbose" )
VERBOSE=1
;;
* )
break
;;
esac
shift 1
done
shell="$(basename "${PYENV_SHELL:-$SHELL}")"
prefix="${VIRTUAL_ENV:-${PYENV_ACTIVATE}}"
if [ -z "${prefix}" ]; then
[ -n "$QUIET" ] || echo "pyenv-virtualenv: no virtualenv has been activated." 1>&2
echo "false"
exit 1
fi
if [[ "${prefix}" != "${prefix%/envs/*}" ]]; then
version="$(basename "${prefix%/envs/*}")/envs/${prefix##*/}"
else
version="${prefix##*/}"
fi
echo "pyenv-virtualenv: deactivate ${version}" 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
echo "pyenv shell --unset;"
case "$shell" in
fish )
echo "set -e PYENV_ACTIVATE_SHELL;"
;;
* )
echo "unset PYENV_ACTIVATE_SHELL;"
;;
esac
fi
case "${shell}" in
fish )
cat <<EOS
setenv PYENV_DEACTIVATE "$prefix";
set -e PYENV_ACTIVATE;
EOS
;;
* )
cat <<EOS
export PYENV_DEACTIVATE="$prefix";
unset PYENV_ACTIVATE;
EOS
;;
esac
# virtualenv/pyvenv
case "${shell}" in
fish )
echo "set -e VIRTUAL_ENV;"
;;
* )
echo "unset VIRTUAL_ENV;"
;;
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