#!/bin/bash
# Podgląd instalacji / first-boot po SSH (bez monitora).
# Użycie:
#   watch-setup           # status + ostatnie linie + follow
#   watch-setup --once    # tylko status, bez follow
set -u

LOG="${NIVATO_PROGRESS_LOG:-/opt/nivato-logger/logs/install-progress.log}"
FOLLOW=1
[ "${1:-}" = "--once" ] && FOLLOW=0

echo "=== Nivato Logger — status setupu ==="
echo "Log: $LOG"
echo

if [ -f /etc/default/nivato-logger ]; then
    # shellcheck source=/dev/null
    . /etc/default/nivato-logger
fi
# shellcheck source=/dev/null
[ -f /opt/nivato-logger/bin/nivato-device-id.sh ] && . /opt/nivato-logger/bin/nivato-device-id.sh

if command -v nivato_device_id >/dev/null 2>&1 || type nivato_device_id >/dev/null 2>&1; then
    echo "Device ID : $(nivato_device_id 2>/dev/null || echo '?')"
    echo "Hostname  : $(hostname 2>/dev/null || echo '?')  → http://$(hostname 2>/dev/null).local"
fi
echo "Czas      : $(date '+%Y-%m-%d %H:%M:%S %Z' 2>/dev/null || echo '?')"
if command -v timedatectl >/dev/null 2>&1; then
    echo "NTP       : $(timedatectl show -p NTPSynchronized --value 2>/dev/null || echo '?')"
fi
echo

echo "--- usługi systemd ---"
for u in nivato-hostname.service nivato-hotspot.service nivato-logger.service systemd-timesyncd.service; do
    state=$(systemctl is-active "$u" 2>/dev/null || echo 'n/a')
    enabled=$(systemctl is-enabled "$u" 2>/dev/null || echo 'n/a')
    printf '  %-32s  active=%-10s  enabled=%s\n' "$u" "$state" "$enabled"
done
echo

if [ -f "$LOG" ]; then
    echo "--- ostatnie 40 linii z $LOG ---"
    tail -n 40 "$LOG"
else
    echo "(brak pliku logu — instalacja jeszcze nie wystartowała albo log w innym miejscu)"
fi

if [ "$FOLLOW" = "1" ]; then
    echo
    echo "=== follow (Ctrl+C kończy tylko podgląd) ==="
    echo "  journalctl -f -t nivato-install"
    echo "  tail -f $LOG"
    echo
    if [ -f "$LOG" ]; then
        tail -n 0 -f "$LOG"
    else
        # czekaj aż pojawi się plik
        while [ ! -f "$LOG" ]; do sleep 1; done
        tail -n 0 -f "$LOG"
    fi
fi
