#!/bin/bash
# Entrypoint: PUID/PGID User-Switching + Default-Config kopieren
#
# Unterstuetzt zwei Betriebsarten:
# 1) docker-compose mit user: "${PUID:-99}:${PGID:-100}" → laeuft direkt als richtiger User
# 2) Unraid Docker-UI mit PUID/PGID als Container-Variablen → entrypoint wechselt den User

PUID=${PUID:-99}
PGID=${PGID:-100}

CFG_DIR="/opt/video-konverter/app/cfg"
DEFAULTS_DIR="/opt/video-konverter/cfg_defaults"

# Default-Konfigdateien kopieren falls nicht vorhanden
for file in "$DEFAULTS_DIR"/*; do
    filename=$(basename "$file")
    if [ ! -f "$CFG_DIR/$filename" ]; then
        echo "Kopiere Default-Config: $filename"
        cp "$file" "$CFG_DIR/$filename"
    fi
done

# Pruefen ob wir als root laufen (Unraid Docker-UI Modus)
if [ "$(id -u)" = "0" ]; then
    echo "Container laeuft als root - wechsle zu PUID=$PUID PGID=$PGID"

    # Gruppe erstellen/aendern
    if getent group vkuser > /dev/null 2>&1; then
        groupmod -o -g "$PGID" vkuser
    else
        groupadd -o -g "$PGID" vkuser
    fi

    # User erstellen/aendern
    if id vkuser > /dev/null 2>&1; then
        usermod -o -u "$PUID" -g "$PGID" vkuser
    else
        useradd -o -u "$PUID" -g "$PGID" -M -s /bin/bash vkuser
    fi

    # Verzeichnis-Berechtigungen rekursiv setzen (inkl. vorhandener Dateien)
    chown -R "$PUID:$PGID" /opt/video-konverter/data /opt/video-konverter/logs /tmp/hls 2>/dev/null
    chown -R "$PUID:$PGID" "$CFG_DIR" 2>/dev/null

    # Als PUID:PGID User starten
    exec gosu "$PUID:$PGID" python3 __main__.py
else
    # Laeuft bereits als richtiger User (docker-compose user: Direktive)
    echo "Container laeuft als UID=$(id -u) GID=$(id -g)"
    exec python3 __main__.py
fi
