#!/usr/bin/env bash
# Install the lakehouse-auditor + lakehouse-context7-bridge systemd units.
# Idempotent: re-running just reloads + restarts.
#
# Usage (as root):
#   bash ops/systemd/install.sh
#
# What it does:
#   1. Copies *.service to /etc/systemd/system/
#   2. systemctl daemon-reload
#   3. systemctl enable --now both services
#   4. Prints post-install status

set -euo pipefail

UNIT_DIR="$(dirname "$(readlink -f "$0")")"
TARGET_DIR=/etc/systemd/system

UNITS=(
  lakehouse-auditor.service
  lakehouse-context7-bridge.service
)

if [[ $EUID -ne 0 ]]; then
  echo "install.sh: must run as root (writes to $TARGET_DIR)" >&2
  exit 1
fi

for unit in "${UNITS[@]}"; do
  src="$UNIT_DIR/$unit"
  dst="$TARGET_DIR/$unit"
  if [[ ! -f "$src" ]]; then
    echo "install.sh: missing source $src" >&2
    exit 1
  fi
  echo "→ copy $unit"
  install -m 0644 "$src" "$dst"
done

echo "→ systemctl daemon-reload"
systemctl daemon-reload

for unit in "${UNITS[@]}"; do
  echo "→ enable + (re)start $unit"
  systemctl enable "$unit" >/dev/null
  systemctl restart "$unit"
done

echo ""
echo "─── post-install status ───"
for unit in "${UNITS[@]}"; do
  active=$(systemctl is-active "$unit" 2>/dev/null || true)
  enabled=$(systemctl is-enabled "$unit" 2>/dev/null || true)
  printf "  %-40s active=%s enabled=%s\n" "$unit" "$active" "$enabled"
done
echo ""
echo "Live logs:   journalctl -u lakehouse-auditor.service -f"
echo "Pause:       touch /home/profit/lakehouse/auditor.paused"
echo "Resume:      rm /home/profit/lakehouse/auditor.paused"
