mirror of
https://github.com/pyenv/pyenv-virtualenv.git
synced 2025-11-08 11:33:55 -05:00
Add prepare_upgrade and upgrade
This commit is contained in:
@@ -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}"
|
prepare_upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}"
|
||||||
mv -f "${VIRTUALENV_PATH}" "${UPGRADE_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
|
upgrade "${VIRTUALENV_NAME}" "${VIRTUALENV_PATH}" || STATUS="$?"
|
||||||
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
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Execute `after_virtualenv` hooks
|
# Execute `after_virtualenv` hooks
|
||||||
|
|||||||
Reference in New Issue
Block a user