<# start-all.ps1 - launch all local Goliath watchers at once (background, no windows). Run from this folder: powershell -ExecutionPolicy Bypass -File .\start-all.ps1 Needs setup.ps1 to have installed Python + deps, and config.ini filled in (ntfy topic and/or [discord] webhook so alerts reach you). #> $here = Split-Path -Parent $MyInvocation.MyCommand.Path Set-Location $here # Resolve a real Python. Bare 'python'/'pythonw' are NOT on PATH in a scheduled-task # or SSH-launched context, so don't depend on Get-Command — fall back to known installs. $pyExe = $null; $pywExe = $null $cmd = Get-Command python -ErrorAction SilentlyContinue if ($cmd) { $pyExe = $cmd.Source } foreach ($c in @( "$env:LOCALAPPDATA\Programs\Python\Python312\python.exe", "C:\Program Files\Python312\python.exe", "C:\Program Files\Python311\python.exe", "C:\Python312\python.exe")) { if (-not $pyExe -and (Test-Path $c)) { $pyExe = $c } } if (-not $pyExe) { Write-Warning "Python not found - run setup.ps1 first."; exit 1 } $pywExe = Join-Path (Split-Path $pyExe) "pythonw.exe" if (-not (Test-Path $pywExe)) { $pywExe = $pyExe } & $pyExe -m pip install --quiet -r (Join-Path $here "requirements.txt") 2>$null # Headless intel watchers + the auto-update poller (run continuously, no interaction) # NOTE: eve_local_watcher disabled — on a multi-monitor desktop its OCR region reads # chat fragments and false-flags pilots not in system. danger_watch (zKill by system) # covers real kills/killers reliably. Re-enable once Local list OCR is solved. $watchers = @("eve_combat_watcher.py", "eve_chat_watcher.py", "eve_rock_watcher.py", "eve_audio_watcher.py", "eve_orehold_watcher.py", "eve_autoupdate.py") foreach ($w in $watchers) { $err = Join-Path $here ("_err_" + $w + ".log") Start-Process $pywExe -ArgumentList "`"$here\$w`"" -WorkingDirectory $here ` -WindowStyle Hidden -RedirectStandardError $err Write-Host "started $w" } Write-Host "" Write-Host "Watchers running. Stop them with: Get-Process pythonw | Stop-Process"