wrolpi/scripts/reset_virtual_environments.sh
Roland 1deaeb3144
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Controller Tests / controller-tests (push) Waiting to run
Jest Tests / jest-tests (push) Waiting to run
Clearing cached python files in repair.sh. Creating reset_virtual_environments.sh script which deletes the virtual environments and rebuilds them (requires internet)
2026-02-28 16:11:12 -07:00

52 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
# Deletes and recreates all WROLPi Python virtual environments.
# This script requires internet access for pip install.
# Re-execute this script if it wasn't called with sudo.
if [ $EUID != 0 ]; then
sudo "$0" "$@"
exit $?
fi
source /opt/wrolpi/wrolpi/scripts/lib.sh
yes_or_no "This script requires internet access. Do you want to continue?" || exit 0
set -e
set -x
echo "Stopping WROLPi services..."
systemctl stop wrolpi-api.service || :
systemctl stop wrolpi-controller.service || :
systemctl stop wrolpi-help.service || :
# Reset main API venv
echo "Resetting /opt/wrolpi/venv..."
rm -rf /opt/wrolpi/venv
python3 -m venv /opt/wrolpi/venv
/opt/wrolpi/venv/bin/pip3 install --upgrade pip
/opt/wrolpi/venv/bin/pip3 install -r /opt/wrolpi/requirements.txt
# Reset Controller venv
echo "Resetting /opt/wrolpi/controller/venv..."
rm -rf /opt/wrolpi/controller/venv
python3 -m venv /opt/wrolpi/controller/venv
/opt/wrolpi/controller/venv/bin/pip install --upgrade pip
/opt/wrolpi/controller/venv/bin/pip install -r /opt/wrolpi/controller/requirements.txt
# Reset Help venv
echo "Resetting /opt/wrolpi-help/venv..."
rm -rf /opt/wrolpi-help/venv
python3 -m venv /opt/wrolpi-help/venv
/opt/wrolpi-help/venv/bin/pip3 install --upgrade pip
/opt/wrolpi-help/venv/bin/pip3 install -r /opt/wrolpi-help/requirements.txt
# Fix ownership
chown -R wrolpi:wrolpi /opt/wrolpi /opt/wrolpi-help
echo "Restarting WROLPi services..."
systemctl start wrolpi-controller.service || :
systemctl start wrolpi-api.service || :
systemctl start wrolpi-help.service || :
echo "Virtual environments have been reset."