Browse Source

Add `prepare_upgrade` and `upgrade`

check-usage-before-uninstall
Yamashita Yuu 10 years ago
parent
commit
2aa207ede0
1 changed files with 28 additions and 18 deletions
  1. +28
    -18
      bin/pyenv-virtualenv

+ 28
- 18
bin/pyenv-virtualenv View File

@ -195,6 +195,32 @@ ensurepip() {
fi fi
} }
prepare_upgrade() {
local version="$1"
local prefix="$2"
PYENV_VERSION="${version}" pyenv-exec pip freeze >"${UPGRADE_LIST}"
mv -f "${prefix}" "${UPGRADE_PATH}"
}
upgrade() {
local version="$1"
local prefix="$2"
## Migrate previously installed packages from requirements.txt
if ! PYENV_VERSION="${version}" pyenv-exec pip install $QUIET $VERBOSE --requirement "${UPGRADE_LIST}"; then
{ echo
echo "UPGRADE FAILED"
echo
echo "Inspect or clean up the original tree at ${UPGRADE_PATH}"
echo
echo "Package list:"
cat "${UPGRADE_LIST}"
} 1>&2
return 1
fi
rm -f "${UPGRADE_LIST}"
rm -fr "${UPGRADE_PATH}"
}
PYENV_VIRTUALENV_ROOT="$(abs_dirname "$0")/.." PYENV_VIRTUALENV_ROOT="$(abs_dirname "$0")/.."
if [ -z "${PYENV_VIRTUALENV_CACHE_PATH}" ]; then if [ -z "${PYENV_VIRTUALENV_CACHE_PATH}" ]; then
PYENV_VIRTUALENV_CACHE_PATH="${PYTHON_BUILD_CACHE_PATH:-${PYENV_ROOT}/cache}" PYENV_VIRTUALENV_CACHE_PATH="${PYTHON_BUILD_CACHE_PATH:-${PYENV_ROOT}/cache}"
@ -346,8 +372,7 @@ if [ -d "${VIRTUALENV_PATH}/bin" ]; then
fi fi
if [ -n "$UPGRADE" ]; then if [ -n "$UPGRADE" ]; then
PYENV_VERSION="${VIRTUALENV_NAME}" pyenv-exec pip freeze >"${UPGRADE_LIST}"
mv -f "${VIRTUALENV_PATH}" "${UPGRADE_PATH}"
prepare_upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}"
fi fi
fi fi
@ -371,22 +396,7 @@ venv $QUIET $VERBOSE "${VIRTUALENV_OPTIONS[@]}" "${VIRTUALENV_PATH}" || STATUS="
## Migrate previously installed packages from requirements.txt ## Migrate previously installed packages from requirements.txt
if [ -n "$UPGRADE" ]; then if [ -n "$UPGRADE" ]; then
UPGRADE_STATUS=0
PYENV_VERSION="${VIRTUALENV_NAME}" pyenv-exec pip install $QUIET $VERBOSE --requirement "${UPGRADE_LIST}" || UPGRADE_STATUS=$?
if [ "$UPGRADE_STATUS" == "0" ]; then
rm -f "${UPGRADE_LIST}"
rm -fr "${UPGRADE_PATH}"
else
{ echo
echo "UPGRADE FAILED"
echo
echo "Inspect or clean up the original tree at ${UPGRADE_PATH}"
echo
echo "Package list:"
cat "${UPGRADE_LIST}"
} 1>&2
STATUS="$UPGRADE_STATUS"
fi
upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}" || STATUS="$?"
fi fi
# Execute `after_virtualenv` hooks # Execute `after_virtualenv` hooks

Loading…
Cancel
Save