#!/bin/bash
# Czytanie logów Nivato Logger bez śmieci z nmcli / telemetrii.
#
#   nivato-logs              follow ops.log (WARN+ ERROR) — domyślnie
#   nivato-logs ops          to samo
#   nivato-logs all          follow pełny app.log
#   nivato-logs err          tylko ERROR z app.log
#   nivato-logs journal      journalctl -u nivato-logger -f
set -u

LOG_DIR="${NIVATO_LOG_DIR:-/opt/nivato-logger/logs}"
MODE="${1:-ops}"
LINES="${2:-200}"

case "$MODE" in
    ops|warn)
        FILE="$LOG_DIR/ops.log"
        [ -f "$FILE" ] || FILE="$LOG_DIR/app.log"
        echo "=== $FILE (WARN+)  ctrl+c kończy ==="
        exec tail -n "$LINES" -f "$FILE"
        ;;
    all|app)
        echo "=== $LOG_DIR/app.log  ctrl+c kończy ==="
        exec tail -n "$LINES" -f "$LOG_DIR/app.log"
        ;;
    err|error)
        echo "=== ERROR w $LOG_DIR/app.log  ctrl+c kończy ==="
        exec tail -n "$LINES" -f "$LOG_DIR/app.log" | grep --line-buffered -E ' ERROR | WARN  '
        ;;
    journal|svc)
        echo "=== journalctl -u nivato-logger  ctrl+c kończy ==="
        exec journalctl -u nivato-logger -f -n "$LINES" --no-pager -o short-iso
        ;;
    *)
        echo "użycie: nivato-logs [ops|all|err|journal] [linie]" >&2
        echo "  ops      WARN+ (domyślnie) — to czytaj na co dzień" >&2
        echo "  all      pełny app.log" >&2
        echo "  err      ERROR/WARN z app.log" >&2
        echo "  journal  systemd (start/stop/OOM/watchdog)" >&2
        exit 2
        ;;
esac
