--- a/upgrade.sh 2024-08-21 11:23:13.710528380 +0200 +++ b/upgrade.sh 2024-08-21 11:24:03.764192726 +0200 @@ -7,76 +7,6 @@ # Python 3.7 or later. cd "$(dirname "$0")" -VIRTUALENV="$(pwd -P)/venv" -PYTHON="${PYTHON:-python3}" - -# Validate the minimum required Python version -COMMAND="${PYTHON} -c 'import sys; exit(1 if sys.version_info < (3, 7) else 0)'" -PYTHON_VERSION=$(eval "${PYTHON} -V") -eval $COMMAND || { - echo "--------------------------------------------------------------------" - echo "ERROR: Unsupported Python version: ${PYTHON_VERSION}. NetBox requires" - echo "Python 3.7 or later. To specify an alternate Python executable, set" - echo "the PYTHON environment variable. For example:" - echo "" - echo " sudo PYTHON=/usr/bin/python3.7 ./upgrade.sh" - echo "" - echo "To show your current Python version: ${PYTHON} -V" - echo "--------------------------------------------------------------------" - exit 1 -} -echo "Using ${PYTHON_VERSION}" - -# Remove the existing virtual environment (if any) -if [ -d "$VIRTUALENV" ]; then - COMMAND="rm -rf ${VIRTUALENV}" - echo "Removing old virtual environment..." - eval $COMMAND -else - WARN_MISSING_VENV=1 -fi - -# Create a new virtual environment -COMMAND="${PYTHON} -m venv ${VIRTUALENV}" -echo "Creating a new virtual environment at ${VIRTUALENV}..." -eval $COMMAND || { - echo "--------------------------------------------------------------------" - echo "ERROR: Failed to create the virtual environment. Check that you have" - echo "the required system packages installed and the following path is" - echo "writable: ${VIRTUALENV}" - echo "--------------------------------------------------------------------" - exit 1 -} - -# Activate the virtual environment -source "${VIRTUALENV}/bin/activate" - -# Upgrade pip -COMMAND="pip install --upgrade pip" -echo "Updating pip ($COMMAND)..." -eval $COMMAND || exit 1 -pip -V - -# Install necessary system packages -COMMAND="pip install wheel" -echo "Installing Python system packages ($COMMAND)..." -eval $COMMAND || exit 1 - -# Install required Python packages -COMMAND="pip install -r requirements.txt" -echo "Installing core dependencies ($COMMAND)..." -eval $COMMAND || exit 1 - -# Install optional packages (if any) -if [ -s "local_requirements.txt" ]; then - COMMAND="pip install -r local_requirements.txt" - echo "Installing local dependencies ($COMMAND)..." - eval $COMMAND || exit 1 -elif [ -f "local_requirements.txt" ]; then - echo "Skipping local dependencies (local_requirements.txt is empty)" -else - echo "Skipping local dependencies (local_requirements.txt not found)" -fi # Apply any database migrations COMMAND="python3 netbox/manage.py migrate"