#!/usr/bin/env bash
set -Eeuo pipefail
DIR="${LABPANEL_INSTALL_DIR:-/opt/labpanel}"
cd "$DIR"
case "${1:-status}" in
  status) docker compose ps ;;
  logs) docker compose logs -f --tail=200 "${2:-}" ;;
  update) curl -fsSL https://get.locinode.xyz | sudo bash ;;
  restart) docker compose restart ;;
  stop) docker compose stop ;;
  start) docker compose up -d ;;
  backup)
    mkdir -p data/backups
    stamp="$(date +%Y%m%d-%H%M%S)"
    docker compose exec -T control python -c "import sqlite3; a=sqlite3.connect('/var/lib/labpanel/labpanel.db'); b=sqlite3.connect('/var/lib/labpanel/backups/labpanel-${stamp}.db'); a.backup(b); b.close(); a.close()"
    echo "Created $DIR/data/backups/labpanel-${stamp}.db"
    ;;
  repair) docker compose up -d --build --remove-orphans ;;
  uninstall)
    echo "This removes containers but preserves $DIR/data. Run: cd $DIR && docker compose down"
    ;;
  *) echo "Usage: labpanel {status|logs|update|restart|stop|start|backup|repair|uninstall}" >&2; exit 2 ;;
esac
