#!/bin/bash
# Installs the RoboPark robot supervisor as a systemd service on a real
# robot (Raspberry Pi or similar). Auto-starts on boot, restarts on crash.
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SUPERVISOR_DIR="$(dirname "$SCRIPT_DIR")"
UNIT_SRC="$SCRIPT_DIR/robopark-supervisor.service"
UNIT_DST="/etc/systemd/system/robopark-supervisor.service"

if [ ! -f "$SUPERVISOR_DIR/robot_supervisor.py" ]; then
    echo "robot_supervisor.py not found in $SUPERVISOR_DIR" >&2
    exit 1
fi

if [ ! -f "$HOME/.robopark/supervisor.json" ]; then
    echo "No ~/.robopark/supervisor.json yet — copy supervisor.example.json there and edit it first:" >&2
    echo "  cp $SUPERVISOR_DIR/supervisor.example.json ~/.robopark/supervisor.json" >&2
    exit 1
fi

echo "Installing systemd unit -> $UNIT_DST (requires sudo)"
sudo sed \
    -e "s#WorkingDirectory=.*#WorkingDirectory=$SUPERVISOR_DIR#" \
    -e "s#User=.*#User=$(whoami)#" \
    "$UNIT_SRC" | sudo tee "$UNIT_DST" > /dev/null

sudo systemctl daemon-reload
sudo systemctl enable robopark-supervisor.service
sudo systemctl restart robopark-supervisor.service

echo "Installed and started. Check status: sudo systemctl status robopark-supervisor.service"
echo "Logs: journalctl -u robopark-supervisor.service -f  (or ~/.robopark/logs/*.log per-service)"
