1e921a9085
Der Nutzer will KEINE Konsole - jetzt ist alles Doppelklick: 1) GRAFISCHER INSTALLER (installer_gui.py, 336 Zeilen): - Fenster mit Status-Checks (Python/GStreamer/Homebrew: fehlt/vorhanden), Fortschrittsbalken beim Download, Log-Bereich, grosse Buttons - macOS: Homebrew + GStreamer + PyGObject + tkinter via brew; Passwort-Dialog kommt NATIV von macOS (osascript administrator privileges) - kein sudo-Tippen - Windows: laedt und startet die OFFIZIELLEN Installer-GUIs (GStreamer-MSI + Python-Setup) - Nutzer klickt nur Weiter/Fertig - Nach Installation: Button 'MediaEngine starten' spawnt die Engine UNSICHTBAR im Hintergrund und oeffnet den Browser - Smoke-Test im Container bestanden (xvfb): Fenster baut sich auf, Statuschecks laufen, sauber beendet 2) macOS: 'HMS MediaEngine.app' (echtes App-Bundle im Repo): - CFBundleExecutable HMS-Launcher (Bash): sucht brew-python3, prueft GStreamer unsichtbar -> Engine nohup im Hintergrund + Browser oeffnet sich; fehlt etwas -> grafischer Installer - make_mac_app.py: App neu erzeugen falls noetig - HMS-Mac-Install.command: Doppelklick-Installation mit nativen osascript-Dialogen (Abbrechen/Weiter) + GUI-Installer am Ende 3) Windows: HMS-Start.vbs (unsichtbar) + HMS-Install.vbs (sichtbar): - HMS-Start.vbs: findet pythonw (4 Pfade + versteckte PATH-Suche ohne Konsolenblitz), startet launcher.pyw KOMPLETT unsichtbar (CREATE_NO_WINDOW) -> nur Browser erscheint - HMS-Install.vbs: oeffnet grafischen Installer; fehlt Python, oeffnet offizielle Downloadseite mit Hinweis auf PATH-Haeckchen - launcher_core.py: gemeinsame Logik (gst_ok -> Engine-Spawn -> Health-Poll -> webbrowser.open; sonst Installer-Fenster) 4) BEWEISE (im Container ausgefuehrt): - Launcher-E2E: launch() -> Engine unsichtbar gestartet, Health gruen, Browser-URL korrekt (http://localhost:8080), RC=0 - GUI-Smoke-Test: Fenster + 'Alles bereit' + sauber beendet - VBS: sh.Run-Zeilen geprueft (Chr(34)-Konstruktion, versteckte cmd-Suche) - Alle 5 Regressionssuiten unveraendert gruen: Projekte 25/25 + Cue 35/35 + Verteilung 33/33 + App 14/14 + FX 16/16 = 123 Checks Download: TAR.GZ (macOS, erhaelt Exec-Bits!) oder ZIP (Windows)
51 lines
1.8 KiB
Bash
Executable File
51 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
||
# HMS MediaEngine – macOS-Installation per Doppelklick (Finder)
|
||
# Ablauf: brew pruefen/installieren -> python3+tk pruefen ->
|
||
# GUI-Installer starten (Passwort-Dialog kommt von macOS selbst).
|
||
# Falls python3/tkinter fehlt: Fallback-Dialoge nativ per osascript.
|
||
|
||
cd "$(dirname "$0")"
|
||
|
||
echo "HMS MediaEngine – Installation"
|
||
|
||
eingabe() {
|
||
osascript -e 'display alert "'$1'" message "'$2'" buttons {"Abbrechen","Weiter"} default button "Weiter" as informational' >/dev/null 2>&1
|
||
[ $? -eq 0 ]
|
||
}
|
||
|
||
# --- Homebrew ---
|
||
BREW=""
|
||
for p in /opt/homebrew/bin/brew /usr/local/bin/brew; do
|
||
if [ -x "$p" ]; then BREW="$p"; break; fi
|
||
done
|
||
if [ -z "$BREW" ]; then
|
||
if eingabe "Homebrew installieren?" "HMS MediaEngine benötigt Homebrew (der Paketmanager für macOS). Es wird jetzt installiert – danach geht es automatisch weiter."; then
|
||
NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||
BREW=/opt/homebrew/bin/brew
|
||
else
|
||
exit 1
|
||
fi
|
||
fi
|
||
|
||
# --- Python 3.12 + tkinter ---
|
||
"$BREW" list python-tk >/dev/null 2>&1 || {
|
||
if eingabe "Python-Komponenten installieren?" "Es wird python@3.12 mit tkinter installiert (für die grafische Oberfläche)."; then
|
||
"$BREW" install python@3.12 python-tk
|
||
fi
|
||
}
|
||
|
||
# --- GStreamer ---
|
||
"$BREW" list gstreamer >/dev/null 2>&1 || {
|
||
if eingabe "GStreamer installieren?" "Es werden GStreamer und alle Video-/Audio-Plugins installiert (ca. 5–10 Minuten)."; then
|
||
"$BREW" install gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav pygobject
|
||
fi
|
||
}
|
||
|
||
# --- GUI-Installer starten ---
|
||
PY=/opt/homebrew/bin/python3
|
||
if [ ! -x "$PY" ]; then PY=/usr/local/bin/python3; fi
|
||
|
||
echo ""
|
||
echo "Starte grafischen Installer (Fenster öffnet sich)..."
|
||
"$PY" installer_gui.py
|