fix(local-tool): yt-dlp / ffmpeg 找不到 — VISIONA_BUNDLE_BIN_DIR 加到 PATH
根因:Go 1.19+ Windows 的 exec.LookPath 不再搜尋 current directory,
而 exec.Command("yt-dlp") / exec.Command("ffmpeg") 只走 LookPath。
Wails app 有設 VISIONA_BUNDLE_BIN_DIR 環境變數指向 {app}\bin\,
但 server 的 deps/checker.go 只在 startup 檢查時用它,沒把它加到 PATH。
修法:server main.go 啟動時把 VISIONA_BUNDLE_BIN_DIR prepend 到 PATH。
這一次解決三個問題:
- yt-dlp: cannot run executable found relative to current directory
- ffmpeg 攝影機列舉找不到 ffmpeg binary
- ffmpeg camera capture 也找不到
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
96dee565b3
commit
00192d3d1e
@ -86,6 +86,14 @@ func main() {
|
||||
logger.Info("Mock mode: %v, Mock camera: %v, Dev mode: %v, Python mode: %s",
|
||||
cfg.MockMode, cfg.MockCamera, cfg.DevMode, cfg.PythonMode)
|
||||
|
||||
// 把 VISIONA_BUNDLE_BIN_DIR 加到 PATH,讓 exec.Command("yt-dlp") / exec.Command("ffmpeg")
|
||||
// 能透過 LookPath 找到 bundle 內的 binary(Go 1.19+ Windows 不再搜 cwd)。
|
||||
if bundleBin := os.Getenv("VISIONA_BUNDLE_BIN_DIR"); bundleBin != "" {
|
||||
sep := string(os.PathListSeparator)
|
||||
os.Setenv("PATH", bundleBin+sep+os.Getenv("PATH"))
|
||||
logger.Info("Added VISIONA_BUNDLE_BIN_DIR to PATH: %s", bundleBin)
|
||||
}
|
||||
|
||||
// Check external dependencies
|
||||
deps.PrintStartupReport(logger)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user