#!/bin/bash

# Parse arguments
if [[ "$1" == "--readonly" ]]; then
  READONLY_MODE=true
else
  READONLY_MODE=false
fi

cd /usr/share/netbox

# Apply any database migrations
if [ "$READONLY_MODE" = true ]; then
  echo "Skipping database migrations (read-only mode)"
  exit 0
else
  COMMAND="python3 manage.py migrate"
  echo "Applying database migrations ($COMMAND)..."
  eval $COMMAND || exit 1
fi

# Trace any missing cable paths (not typically needed)
COMMAND="python3 manage.py trace_paths --no-input"
echo "Checking for missing cable paths ($COMMAND)..."
eval $COMMAND || exit 1

# Collect static files
COMMAND="python3 manage.py collectstatic --no-input"
echo "Collecting static files ($COMMAND)..."
eval $COMMAND || exit 1

# Delete any stale content types
COMMAND="python3 manage.py remove_stale_contenttypes --no-input"
echo "Removing stale content types ($COMMAND)..."
eval $COMMAND || exit 1

# Rebuild the search cache (lazily)
COMMAND="python3 manage.py reindex --lazy"
echo "Rebuilding search cache ($COMMAND)..."
eval $COMMAND || exit 1

# Delete any expired user sessions
COMMAND="python3 manage.py clearsessions"
echo "Removing expired user sessions ($COMMAND)..."
eval $COMMAND || exit 1

echo "Upgrade complete! Don't forget to restart the NetBox services"
