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)
52 lines
1.8 KiB
Plaintext
52 lines
1.8 KiB
Plaintext
' HMS MediaEngine - Windows-Starter (unsichtbar, Doppelklick)
|
|
' Startet die Engine im Hintergrund (nur Browser sichtbar).
|
|
' Fehlen Abhaengigkeiten, oeffnet sich der grafische Installer.
|
|
Option Explicit
|
|
Dim fso, sh, py, cand, dir_, tmpFile, ts, out
|
|
Dim candidates(3)
|
|
Set fso = CreateObject("Scripting.FileSystemObject")
|
|
Set sh = CreateObject("WScript.Shell")
|
|
dir_ = fso.GetParentFolderName(WScript.ScriptFullName)
|
|
|
|
py = ""
|
|
candidates(0) = sh.ExpandEnvironmentStrings("%LOCALAPPDATA%") & "\Programs\Python\Python313\pythonw.exe"
|
|
candidates(1) = sh.ExpandEnvironmentStrings("%LOCALAPPDATA%") & "\Programs\Python\Python312\pythonw.exe"
|
|
candidates(2) = "C:\Python313\pythonw.exe"
|
|
candidates(3) = "C:\Python312\pythonw.exe"
|
|
For Each cand In candidates
|
|
If py = "" Then
|
|
If fso.FileExists(cand) Then py = cand
|
|
End If
|
|
Next
|
|
|
|
If py = "" Then
|
|
' PATH-Suche VERSTECKT (sh.Exec wuerde ein Konsolenfenster zeigen):
|
|
' cmd versteckt laufen lassen, Ausgabe in Temp-Datei
|
|
tmpFile = sh.ExpandEnvironmentStrings("%TEMP%") & "\hms_py_path.txt"
|
|
On Error Resume Next
|
|
sh.Run "cmd /c where pythonw > """ & tmpFile & """ 2>nul", 0, True
|
|
If fso.FileExists(tmpFile) Then
|
|
Set ts = fso.OpenTextFile(tmpFile, 1)
|
|
If Not ts.AtEndOfStream Then
|
|
out = Trim(ts.ReadLine())
|
|
If Len(out) > 4 Then
|
|
If fso.FileExists(out) Then py = out
|
|
End If
|
|
End If
|
|
ts.Close
|
|
fso.DeleteFile tmpFile, True
|
|
End If
|
|
On Error GoTo 0
|
|
End If
|
|
|
|
If py = "" Then
|
|
MsgBox "Python wurde nicht gefunden." & vbCrLf & vbCrLf & _
|
|
"Bitte einmal 'HMS-Install.vbs' doppelklicken -" & vbCrLf & _
|
|
"es installiert Python und GStreamer ueber grafische Installer.", _
|
|
48, "HMS MediaEngine"
|
|
WScript.Quit 1
|
|
End If
|
|
|
|
sh.CurrentDirectory = dir_
|
|
sh.Run Chr(34) & py & Chr(34) & " " & Chr(34) & dir_ & "\launcher.pyw" & Chr(34), 0, False
|