@echo off
rem =====================================================================
rem  Stream-Tools-Updater.cmd  ·  OHNEEXE-V1 (09.10.2026)
rem
rem  Startet den Updater als .ps1 — ohne dass er kompiliert werden muss.
rem
rem  Gernot: „Die Tools als EXE muss ich ja jedesmal kompilieren — ist das
rem  denn ueberhaupt noetig?"  Fuer die Werkzeuge war die Antwort nein
rem  (NEUEREGEWINNT-V1). Fuer den Updater SELBST galt sie bisher nicht:
rem  Wer die .exe startet, startet den Stand der .exe, und eine neuere
rem  .ps1 daneben aendert daran nichts — es startet ja etwas.
rem
rem  Mit dieser Datei entfaellt das Kompilieren auch fuer den Updater:
rem    * als Verwalter        (#Requires -RunAsAdministrator)
rem    * -ExecutionPolicy Bypass
rem    * -NoProfile           (kein fremdes Profil dazwischen)
rem    * Parameter gehen durch (-Auto fuer das GLPI-Deployment)
rem
rem  Das Selbstupdate kommt damit zurecht: Laeuft der Updater als Skript,
rem  erkennt er das an $PSCommandPath, kopiert in den Skriptordner und
rem  startet ueber PowerShell neu.
rem
rem  WICHTIG: Liegt daneben noch eine alte Stream-Tools-Updater.exe, startet
rem  eine Verknuepfung darauf weiterhin den ALTEN Stand. Entweder die
rem  Verknuepfung auf diese .cmd umstellen oder die .exe entfernen.
rem =====================================================================

setlocal
set "HIER=%~dp0"
set "SKRIPT=%HIER%Stream-Tools-Updater.ps1"

if not exist "%SKRIPT%" (
    echo.
    echo   FEHLER: Stream-Tools-Updater.ps1 liegt nicht neben dieser Datei.
    echo   Erwartet: %SKRIPT%
    echo.
    pause
    exit /b 1
)

rem Laufen wir schon als Verwalter?
net session >nul 2>&1
if errorlevel 1 (
    rem Parameter muessen mit — sonst waere ein uebergebenes -Auto weg.
    if "%*"=="" (
        powershell -NoProfile -Command "Start-Process -Verb RunAs -FilePath '%~f0'"
    ) else (
        powershell -NoProfile -Command "Start-Process -Verb RunAs -FilePath '%~f0' -ArgumentList '%*'"
    )
    exit /b 0
)

rem Kein pause am Ende: Der Updater ist eine Oberflaeche, kein Ablauf mit
rem Ausgabe. Das Fenster soll sich schliessen, sobald sie offen ist.
rem KONSOLEZU-V1 (19.10.2026): Bisher wartete diese Datei auf PowerShell -
rem das cmd-Fenster blieb offen, solange der Updater lief (Gernot: "warum
rem bleibt das Konsolenfenster offen?"). Jetzt per START losschicken und
rem sofort schliessen. NUR beim Autolauf (-Auto, GLPI/Aufgabenplanung) wird
rem weiter gewartet - dort fragt der Aufrufer den Rueckgabewert ab.
echo.%*| findstr /i /c:"-Auto" >nul
if not errorlevel 1 (
    powershell -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "%SKRIPT%" %*
    exit /b %errorlevel%
)
start "" powershell -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File "%SKRIPT%" %*
exit /b 0

endlocal
