#!/bin/bash

#################################################################
# Validiert mc.cfg auf Vorhandensein aller Pflichtfelder
# Rückgabe: 1 = valide, 0 = ungültig (Fehler in stv.log)
#################################################################

CFG="/home/snowtv/bin/mc.cfg"
LOG="/var/log/stv.log"
FAILED=0
MISSING=""

# DISPLAYCTL ist bewusst NICHT Pflicht: "--" (kein Display-Control-Script) ist
# eine gültige Backend-Auswahl (z.B. GDS-Panels, die exklusiv über routine.py
# gesteuert werden, siehe dispon.sh/dispoff.sh) und führt dazu, dass der
# Server das Feld leer/weglässt. wdispctl.sh/dispon.sh/dispoff.sh vertragen
# einen leeren Wert bereits (kein Branch matcht → no-op). Als Pflichtfeld
# blockierte DISPLAYCTL=leer bisher JEDE Config-Übernahme, nicht nur die
# Displaysteuerung (Fund auf Player 665, Labor Wallisellen, 04.08.2026).
REQUIRED="ID NAME START END URL"

# Datei vorhanden und nicht leer?
if [ ! -s "$CFG" ]; then
    echo "$(date)  ERROR: mc.cfg fehlt oder ist leer" | tee -a "$LOG"
    echo "0"
    exit 0
fi

# Pflichtfelder prüfen
for KEY in $REQUIRED; do
    if ! grep -qE "^${KEY}=.+" "$CFG"; then
        MISSING="${MISSING} ${KEY}"
        FAILED=1
    fi
done

if [ "$FAILED" -eq 1 ]; then
    echo "$(date)  ERROR: mc.cfg ungültig – fehlende Felder:${MISSING}" | tee -a "$LOG"
    echo "0"
else
    echo "1"
fi

exit 0
