#!/bin/bash

# 1. Input-Kanal wiederherstellen (für curl | bash Nutzung)
exec < /dev/tty

BASE_URL="https://download.mathew.de/"

echo "--------------------------------------------------"
echo " Universal Agent Installer (Linux)"
echo "--------------------------------------------------"

# Prüfen ob curl vorhanden ist (RHEL/SUSE Standard)
if ! command -v curl &> /dev/null; then
    echo "FEHLER: 'curl' ist nicht installiert. Bitte installieren (yum install curl / zypper in curl)."
    exit 1
fi

echo "Lade verfügbare Agents..."
PS3="Bitte Agent wählen (Nummer eingeben): "

# Liste via curl holen. sort -u entfernt Duplikate.
options=$(curl -s "$BASE_URL" | grep -oE '[A-Z]+_LocalOffice_UEMSLinuxAgent\.zip' | sort -u)

if [ -z "$options" ]; then
    echo "Fehler: Konnte keine Agent-Liste laden. URL erreichbar?"
    exit 1
fi

select file in $options; do
    if [ -n "$file" ]; then
        echo "--------------------------------------------------"
        echo "Starte Installation für: $file"
        echo "--------------------------------------------------"
        
        # In Temp-Ordner wechseln
        cd /tmp || exit 1
        
        # SCHRITT 1: Download (Nur mit curl, um wget-Abhängigkeit zu vermeiden)
        echo "[1/4] Download via curl..."
        # -O speichert die Datei unter dem Originalnamen
        # -L folgt Redirects (sicherheitshalber)
        if curl -L -O "$BASE_URL$file"; then
             echo "Download erfolgreich."
        else
             echo "Fehler beim Download."
             exit 1
        fi

        # SCHRITT 2: Entpacken (Fallback auf Python für RHEL/SUSE ohne unzip)
        echo "[2/4] Entpacken..."
        if command -v unzip >/dev/null; then
            unzip -o "$file"
        else
            echo "Kein 'unzip' gefunden (typisch für RHEL/SUSE Minimal)."
            echo "Nutze Python Fallback..."
            # Versucht erst python3, dann python (für ältere CentOS 7)
            if command -v python3 >/dev/null; then
                python3 -c "import zipfile, sys; zipfile.ZipFile(sys.argv[1]).extractall()" "$file"
            elif command -v python >/dev/null; then
                python -c "import zipfile, sys; zipfile.ZipFile(sys.argv[1]).extractall()" "$file"
            else
                echo "FEHLER: Weder 'unzip' noch Python gefunden. Bitte 'unzip' installieren."
                exit 1
            fi
        fi

        # SCHRITT 3: Installer ausführbar machen und starten
        echo "[3/4] Installation..."
        BIN_FILE="UEMS_LinuxAgent.bin"
        
        if [ -f "$BIN_FILE" ]; then
            chmod +x "$BIN_FILE"
            ./"$BIN_FILE"
        else
            echo "FEHLER: $BIN_FILE wurde nach dem Entpacken nicht gefunden!"
            exit 1
        fi

        # SCHRITT 4: Aufräumen
        echo "[4/4] Aufräumen..."
        rm -f "$file" "$BIN_FILE" serverinfo.json LINUX_README.txt
        
        echo "Fertig."
        break
    else
        echo "Ungültige Auswahl. Bitte eine Nummer aus der Liste eingeben."
    fi
done
