2016-07-01 13:21:51 -04:00
|
|
|
#!/bin/bash
|
2016-06-29 15:43:42 -04:00
|
|
|
# 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).
|
|
|
|
|
2017-06-09 12:13:47 -04:00
|
|
|
# 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
|
|
|
|
|
2016-07-01 13:21:51 -04:00
|
|
|
# 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
|
|
|
|
|
2017-04-27 14:42:52 -04:00
|
|
|
# Delete stale bytecode
|
|
|
|
COMMAND="${PREFIX}find . -name \"*.pyc\" -delete"
|
|
|
|
echo "Cleaning up stale Python bytecode ($COMMAND)..."
|
2017-05-01 16:53:51 -04:00
|
|
|
eval $COMMAND
|
2017-04-27 14:42:52 -04:00
|
|
|
|
2017-10-09 17:40:15 -04:00
|
|
|
# Uninstall any Python packages which are no longer needed
|
|
|
|
COMMAND="${PREFIX}${PIP} uninstall -r old_requirements.txt -y"
|
|
|
|
echo "Removing old Python packages ($COMMAND)..."
|
|
|
|
eval $COMMAND
|
|
|
|
|
2016-06-29 15:43:42 -04:00
|
|
|
# Install any new Python packages
|
2017-04-21 13:30:18 -04:00
|
|
|
COMMAND="${PREFIX}${PIP} install -r requirements.txt --upgrade"
|
2016-07-01 13:21:51 -04:00
|
|
|
echo "Updating required Python packages ($COMMAND)..."
|
|
|
|
eval $COMMAND
|
2016-06-29 15:43:42 -04:00
|
|
|
|
|
|
|
# Apply any database migrations
|
2017-05-26 09:55:22 -04:00
|
|
|
COMMAND="${PYTHON} netbox/manage.py migrate"
|
2017-05-18 14:53:35 -04:00
|
|
|
echo "Applying database migrations ($COMMAND)..."
|
2017-04-27 14:42:52 -04:00
|
|
|
eval $COMMAND
|
2016-06-29 15:43:42 -04:00
|
|
|
|
|
|
|
# Collect static files
|
2017-05-26 09:55:22 -04:00
|
|
|
COMMAND="${PYTHON} netbox/manage.py collectstatic --no-input"
|
2017-04-27 14:42:52 -04:00
|
|
|
echo "Collecting static files ($COMMAND)..."
|
|
|
|
eval $COMMAND
|