mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
56 lines
1.6 KiB
Bash
Executable File
56 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# This script will prepare NetBox to run after the code has been upgraded to
|
|
# its most recent release.
|
|
#
|
|
# Once the script completes, remember to restart the WSGI service (e.g.
|
|
# gunicorn or uWSGI).
|
|
|
|
# Determine which version of Python/pip to use. Default to v3 (if available)
|
|
# but allow the user to force v2.
|
|
PYTHON="python3"
|
|
PIP="pip3"
|
|
type $PYTHON >/dev/null 2>&1 && type $PIP >/dev/null 2>&1 || PYTHON="python" PIP="pip"
|
|
while getopts ":2" opt; do
|
|
case $opt in
|
|
2)
|
|
PYTHON="python"
|
|
PIP="pip"
|
|
echo "Forcing Python/pip v2"
|
|
;;
|
|
\?)
|
|
echo "Invalid option: -$OPTARG" >&2
|
|
exit
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Optionally use sudo if not already root, and always prompt for password
|
|
# before running the command
|
|
PREFIX="sudo -k "
|
|
if [ "$(whoami)" = "root" ]; then
|
|
# When running upgrade as root, ask user to confirm if they wish to
|
|
# continue
|
|
read -n1 -rsp $'Running NetBox upgrade as root, press any key to continue or ^C to cancel\n'
|
|
PREFIX=""
|
|
fi
|
|
|
|
# Delete stale bytecode
|
|
COMMAND="${PREFIX}find . -name \"*.pyc\" -delete"
|
|
echo "Cleaning up stale Python bytecode ($COMMAND)..."
|
|
eval $COMMAND
|
|
|
|
# Install any new Python packages
|
|
COMMAND="${PREFIX}${PIP} install -r requirements.txt --upgrade"
|
|
echo "Updating required Python packages ($COMMAND)..."
|
|
eval $COMMAND
|
|
|
|
# Apply any database migrations
|
|
COMMAND="${PYTHON} netbox/manage.py migrate"
|
|
echo "Applying database migrations ($COMMAND)..."
|
|
eval $COMMAND
|
|
|
|
# Collect static files
|
|
COMMAND="${PYTHON} netbox/manage.py collectstatic --no-input"
|
|
echo "Collecting static files ($COMMAND)..."
|
|
eval $COMMAND
|