Ship Windows plug-and-play host exe with USB wait and autostart.
Users no longer need Python: run.bat or install_autostart.ps1; agent reconnects when CYD is plugged in.
This commit is contained in:
34
host/build_exe.ps1
Normal file
34
host/build_exe.ps1
Normal file
@@ -0,0 +1,34 @@
|
||||
# Build a standalone Windows exe (no Python install needed on target PCs).
|
||||
# Output: host\dist\send_sysinfo.exe
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
|
||||
Set-Location $here
|
||||
|
||||
$pyCandidates = @(
|
||||
"python",
|
||||
(Join-Path $env:USERPROFILE "AppData\Local\Programs\Python\Python312\python.exe"),
|
||||
(Join-Path $env:USERPROFILE "AppData\Local\Programs\Python\Python311\python.exe")
|
||||
)
|
||||
$py = $null
|
||||
foreach ($c in $pyCandidates) {
|
||||
$cmd = Get-Command $c -ErrorAction SilentlyContinue
|
||||
if ($cmd) { $py = $cmd.Source; break }
|
||||
if (Test-Path $c) { $py = $c; break }
|
||||
}
|
||||
if (-not $py) { throw "Python required only on the build machine." }
|
||||
|
||||
& $py -m pip install -q pyinstaller psutil pyserial nvidia-ml-py
|
||||
& $py -m PyInstaller --noconfirm --clean --onefile --console `
|
||||
--name send_sysinfo `
|
||||
--hidden-import serial.tools.list_ports `
|
||||
--hidden-import psutil `
|
||||
--collect-all nvidia_ml_py `
|
||||
.\send_sysinfo.py
|
||||
|
||||
if (-not (Test-Path ".\dist\send_sysinfo.exe")) {
|
||||
throw "Build failed: dist\send_sysinfo.exe missing"
|
||||
}
|
||||
Copy-Item ".\dist\send_sysinfo.exe" ".\send_sysinfo.exe" -Force
|
||||
Write-Host "OK -> $here\send_sysinfo.exe"
|
||||
Write-Host "Also -> $here\dist\send_sysinfo.exe"
|
||||
Reference in New Issue
Block a user