mirror of
https://github.com/SpudGunMan/meshing-around.git
synced 2026-03-28 17:32:36 +01:00
71 lines
2.5 KiB
Bash
71 lines
2.5 KiB
Bash
#!/bin/bash
|
|
# MeshBot Update Script
|
|
# Usage: bash update.sh or ./update.sh after making it executable with chmod +x update.sh
|
|
|
|
# Check if the mesh_bot.service or pong_bot.service
|
|
if systemctl is-active --quiet mesh_bot.service; then
|
|
echo "Stopping mesh_bot.service..."
|
|
systemctl stop mesh_bot.service
|
|
service_stopped=true
|
|
fi
|
|
if systemctl is-active --quiet pong_bot.service; then
|
|
echo "Stopping pong_bot.service..."
|
|
systemctl stop pong_bot.service
|
|
service_stopped=true
|
|
fi
|
|
if systemctl is-active --quiet mesh_bot_reporting.service; then
|
|
echo "Stopping mesh_bot_reporting.service..."
|
|
systemctl stop mesh_bot_reporting.service
|
|
service_stopped=true
|
|
fi
|
|
if systemctl is-active --quiet mesh_bot_w3.service; then
|
|
echo "Stopping mesh_bot_w3.service..."
|
|
systemctl stop mesh_bot_w3.service
|
|
service_stopped=true
|
|
fi
|
|
|
|
# git pull with rebase to avoid unnecessary merge commits
|
|
echo "Pulling latest changes from GitHub..."
|
|
if ! git pull origin main --rebase; then
|
|
read -p "Git pull resulted in conflicts. Do you want to reset hard to origin/main? This will discard local changes. (y/n): " choice
|
|
if [[ "$choice" == "y" || "$choice" == "Y" ]]; then
|
|
git fetch --all
|
|
git reset --hard origin/main
|
|
echo "Local repository updated."
|
|
else
|
|
echo "Update aborted due to git conflicts."
|
|
fi
|
|
fi
|
|
|
|
# Install or update dependencies
|
|
echo "Installing or updating dependencies..."
|
|
if pip install -r requirements.txt --upgrade 2>&1 | grep -q "externally-managed-environment"; then
|
|
# if venv is found ask to run with launch.sh
|
|
if [ -d "venv" ]; then
|
|
echo "A virtual environment (venv) was found. run from inside venv"
|
|
else
|
|
read -p "Warning: You are in an externally managed environment. Do you want to continue with --break-system-packages? (y/n): " choice
|
|
if [[ "$choice" == "y" || "$choice" == "Y" ]]; then
|
|
pip install --break-system-packages -r requirements.txt --upgrade
|
|
else
|
|
echo "Update aborted due to dependency installation issue."
|
|
fi
|
|
fi
|
|
else
|
|
echo "Dependencies installed or updated."
|
|
fi
|
|
|
|
# if service was stopped earlier, restart it
|
|
if [ "$service_stopped" = true ]; then
|
|
echo "Restarting services..."
|
|
systemctl start mesh_bot.service
|
|
systemctl start pong_bot.service
|
|
systemctl start mesh_bot_reporting.service
|
|
systemctl start mesh_bot_w3.service
|
|
echo "Services restarted."
|
|
fi
|
|
|
|
# Print completion message
|
|
echo "Update completed successfully?"
|
|
exit 0
|
|
# End of script |