From b9951fa69c13b1dbde0708bd70d8f85d21fd9858 Mon Sep 17 00:00:00 2001 From: "Yamashita, Yuu" Date: Fri, 18 Dec 2015 00:30:29 +0000 Subject: [PATCH] Uninstall all virtualenvs inside `envs` on the uninstallation of the parent version --- etc/pyenv.d/uninstall/envs.bash | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/etc/pyenv.d/uninstall/envs.bash b/etc/pyenv.d/uninstall/envs.bash index c7c499d..c3dc5df 100644 --- a/etc/pyenv.d/uninstall/envs.bash +++ b/etc/pyenv.d/uninstall/envs.bash @@ -4,6 +4,7 @@ resolve_link() { if [ -n "${DEFINITION}" ]; then if [[ "${DEFINITION}" != "${DEFINITION%/envs/*}" ]]; then + # Uninstall virtualenv by long name exec pyenv-virtualenv-delete ${FORCE+-f} "${DEFINITION}" exit 128 else @@ -13,9 +14,17 @@ if [ -n "${DEFINITION}" ]; 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 + # 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