fc8ee34369
Lint & Test / test (push) Successful in 1m40s
Three separate bugs in the VBS launcher wedged together: 1. The previous fix added a UTF-8 em-dash in a comment. wscript.exe on Windows refused to execute the file with "Execution of the Windows Script Host failed. (Not enough memory resources are available to complete this operation.)" — a misleading error that actually means "I could not parse this file as ANSI VBScript". Fix: keep the file pure ASCII, convert to CRLF. 2. The launcher was invoking pythonw.exe. WshShell.Run spawning pythonw.exe inside the wscript host exited immediately (no process, no log). python.exe with WindowStyle=0 works reliably and matches the pattern used by the Media Server sibling app's VBS launcher, which has been running on this machine without issue. 3. The env vars (PYTHONPATH, WLED_CONFIG_PATH) must be set before the child process spawns, otherwise config.py falls back to the CWD default path that does not exist at install time.
21 lines
883 B
Plaintext
21 lines
883 B
Plaintext
Set fso = CreateObject("Scripting.FileSystemObject")
|
|
Set WshShell = CreateObject("WScript.Shell")
|
|
' Get the directory of this script (scripts\), then go up to app root
|
|
scriptDir = fso.GetParentFolderName(WScript.ScriptFullName)
|
|
appRoot = fso.GetParentFolderName(scriptDir)
|
|
WshShell.CurrentDirectory = appRoot
|
|
|
|
' Set env vars for the child process (inherited via WshShell.Run)
|
|
Set procEnv = WshShell.Environment("Process")
|
|
procEnv("PYTHONPATH") = appRoot & "\app\src"
|
|
procEnv("WLED_CONFIG_PATH") = appRoot & "\app\config\default_config.yaml"
|
|
|
|
' Use embedded python.exe (NOT pythonw.exe) with WindowStyle=0.
|
|
' Same pattern as the Media Server sibling app.
|
|
embeddedPython = appRoot & "\python\python.exe"
|
|
If fso.FileExists(embeddedPython) Then
|
|
WshShell.Run """" & embeddedPython & """ -m wled_controller", 0, False
|
|
Else
|
|
WshShell.Run "python -m wled_controller", 0, False
|
|
End If
|