mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-10 04:23:53 -05:00
Upgrade uninstall hook after pyenv/pyenv#2432 (#438)
This commit is contained in:
@@ -2,29 +2,33 @@ resolve_link() {
|
|||||||
$(type -p greadlink readlink | head -1) "$1"
|
$(type -p greadlink readlink | head -1) "$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ -n "${DEFINITION}" ]; then
|
uninstall_related_virtual_env() {
|
||||||
if [[ "${DEFINITION}" != "${DEFINITION%/envs/*}" ]]; then
|
if [ -n "${DEFINITION}" ]; then
|
||||||
# Uninstall virtualenv by long name
|
if [[ "${DEFINITION}" != "${DEFINITION%/envs/*}" ]]; then
|
||||||
exec pyenv-virtualenv-delete ${FORCE+-f} "${DEFINITION}"
|
# Uninstall virtualenv by long name
|
||||||
exit 128
|
exec pyenv-virtualenv-delete ${FORCE+-f} "${DEFINITION}"
|
||||||
else
|
exit 128
|
||||||
VERSION_NAME="${VERSION_NAME:-${DEFINITION##*/}}"
|
|
||||||
PREFIX="${PREFIX:-${PYENV_ROOT}/versions/${VERSION_NAME}}"
|
|
||||||
if [ -L "${PREFIX}" ]; then
|
|
||||||
REAL_PREFIX="$(resolve_link "${PREFIX}" 2>/dev/null || true)"
|
|
||||||
REAL_DEFINITION="${REAL_PREFIX#${PYENV_ROOT}/versions/}"
|
|
||||||
if [[ "${REAL_DEFINITION}" != "${REAL_DEFINITION%/envs/*}" ]]; then
|
|
||||||
# Uninstall virtualenv by short name
|
|
||||||
exec pyenv-virtualenv-delete ${FORCE+-f} "${REAL_DEFINITION}"
|
|
||||||
exit 128
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
# Uninstall all virtualenvs inside `envs` directory too
|
VERSION_NAME="${VERSION_NAME:-${DEFINITION##*/}}"
|
||||||
shopt -s nullglob
|
PREFIX="${PREFIX:-${PYENV_ROOT}/versions/${VERSION_NAME}}"
|
||||||
for virtualenv in "${PREFIX}/envs/"*; do
|
if [ -L "${PREFIX}" ]; then
|
||||||
pyenv-virtualenv-delete ${FORCE+-f} "${DEFINITION}/envs/${virtualenv##*/}"
|
REAL_PREFIX="$(resolve_link "${PREFIX}" 2>/dev/null || true)"
|
||||||
done
|
REAL_DEFINITION="${REAL_PREFIX#${PYENV_ROOT}/versions/}"
|
||||||
shopt -u nullglob
|
if [[ "${REAL_DEFINITION}" != "${REAL_DEFINITION%/envs/*}" ]]; then
|
||||||
|
# Uninstall virtualenv by short name
|
||||||
|
exec pyenv-virtualenv-delete ${FORCE+-f} "${REAL_DEFINITION}"
|
||||||
|
exit 128
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Uninstall all virtualenvs inside `envs` directory too
|
||||||
|
shopt -s nullglob
|
||||||
|
for virtualenv in "${PREFIX}/envs/"*; do
|
||||||
|
pyenv-virtualenv-delete ${FORCE+-f} "${DEFINITION}/envs/${virtualenv##*/}"
|
||||||
|
done
|
||||||
|
shopt -u nullglob
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
before_uninstall "uninstall_related_virtual_env"
|
||||||
|
|||||||
Reference in New Issue
Block a user