#!/usr/bin/env bash
# setup-checks.sh — deploy check scripts to /opt/oikos/checks.
# Auto-setup hook: tools/setup-*.sh runs after every git pull.
#
# On a plain host/workstation this installs the scripts locally (the pulling
# host). On a Proxmox host it ALSO pushes the scripts into every running LXC/VM
# guest, because an ssh-script check runs the script INSIDE the target — a
# script present only on the host does nothing for a guest reached via
# pct/qm exec. Guest deployment is delegated to deploy-checks.sh.
set -euo pipefail

CLONE_DIR="${HOMELAB_CONTEXT_DIR:-/opt/homelab}"
CHECK_SETUP="$CLONE_DIR/checks/install.sh"
DEPLOY="$CLONE_DIR/tools/deploy-checks.sh"

if [ -f "$CHECK_SETUP" ]; then
  bash "$CHECK_SETUP" || echo "[setup-checks] WARNING: install.sh exited with code $?"
else
  echo "[setup-checks] no checks/install.sh found, skipping"
fi

# On a Proxmox host, keep every guest's scripts in sync too. Best-effort: a
# failing push to one guest must not abort the whole hook. Warn (not skip
# silently) if deploy-checks.sh itself is absent — without it guests never get
# scripts and the pct-exec routing reports every guest check down.
if command -v pct >/dev/null 2>&1; then
  if [ ! -f "$DEPLOY" ]; then
    echo "[setup-checks] WARNING: $DEPLOY missing — guest scripts will go stale. Commit tools/deploy-checks.sh alongside this hook."
  elif [ ! -x "$DEPLOY" ]; then
    echo "[setup-checks] WARNING: $DEPLOY not executable — running via bash"
    bash "$DEPLOY" || echo "[setup-checks] WARNING: guest deploy exited non-zero (scripts may be stale on some guests)"
  else
    "$DEPLOY" || echo "[setup-checks] WARNING: guest deploy exited non-zero (scripts may be stale on some guests)"
  fi
fi
