From d23166286d8123410be6c41144669dcd8e4c8eea Mon Sep 17 00:00:00 2001 From: Vatsal Gupta <40350810+gvatsal60@users.noreply.github.com> Date: Wed, 9 Oct 2024 00:32:21 +0530 Subject: [PATCH] Fix: Handle case where Python version is already installed (#222) (#1115) * Fix: Handle case where Python version is already installed in dev container (#617) * Incorporated Review Comment: Version exist handling --- src/python/install.sh | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/python/install.sh b/src/python/install.sh index 7e30ea041..ead55cc8a 100755 --- a/src/python/install.sh +++ b/src/python/install.sh @@ -465,16 +465,18 @@ install_prev_vers_cpython() { install_cpython() { VERSION=$1 INSTALL_PATH="${PYTHON_INSTALL_PATH}/${VERSION}" + + # Check if the specified Python version is already installed if [ -d "${INSTALL_PATH}" ]; then echo "(!) Python version ${VERSION} already exists." - exit 1 + else + mkdir -p /tmp/python-src ${INSTALL_PATH} + cd /tmp/python-src + cpython_tgz_filename="Python-${VERSION}.tgz" + cpython_tgz_url="https://www.python.org/ftp/python/${VERSION}/${cpython_tgz_filename}" + echo "Downloading ${cpython_tgz_filename}..." + curl -sSL -o "/tmp/python-src/${cpython_tgz_filename}" "${cpython_tgz_url}" fi - mkdir -p /tmp/python-src ${INSTALL_PATH} - cd /tmp/python-src - cpython_tgz_filename="Python-${VERSION}.tgz" - cpython_tgz_url="https://www.python.org/ftp/python/${VERSION}/${cpython_tgz_filename}" - echo "Downloading ${cpython_tgz_filename}..." - curl -sSL -o "/tmp/python-src/${cpython_tgz_filename}" "${cpython_tgz_url}" } install_from_source() { @@ -560,20 +562,20 @@ install_using_oryx() { VERSION=$1 INSTALL_PATH="${PYTHON_INSTALL_PATH}/${VERSION}" + # Check if the specified Python version is already installed if [ -d "${INSTALL_PATH}" ]; then echo "(!) Python version ${VERSION} already exists." - exit 1 - fi - - # The python install root path may not exist, so create it - mkdir -p "${PYTHON_INSTALL_PATH}" - oryx_install "python" "${VERSION}" "${INSTALL_PATH}" "lib" || return 1 + else + # The python install root path may not exist, so create it + mkdir -p "${PYTHON_INSTALL_PATH}" + oryx_install "python" "${VERSION}" "${INSTALL_PATH}" "lib" || return 1 - ln -s "${INSTALL_PATH}/bin/idle3" "${INSTALL_PATH}/bin/idle" - ln -s "${INSTALL_PATH}/bin/pydoc3" "${INSTALL_PATH}/bin/pydoc" - ln -s "${INSTALL_PATH}/bin/python3-config" "${INSTALL_PATH}/bin/python-config" + ln -s "${INSTALL_PATH}/bin/idle3" "${INSTALL_PATH}/bin/idle" + ln -s "${INSTALL_PATH}/bin/pydoc3" "${INSTALL_PATH}/bin/pydoc" + ln -s "${INSTALL_PATH}/bin/python3-config" "${INSTALL_PATH}/bin/python-config" - add_symlink + add_symlink + fi } sudo_if() {