@echo off REM Windows helper: same as ./start.sh (Git Bash) cd /d "%~dp0" if not exist "vendor\libusb-1.0.dll" ( echo [!] vendor\libusb-1.0.dll missing — zip with vendor\ folder required. pause exit /b 1 ) if not exist ".venv\Scripts\python.exe" ( echo [*] First run — running offline setup... call "scripts\setup_windows.bat" if errorlevel 1 exit /b 1 ) if exist "vendor\libusb-1.0.dll" ( copy /Y "vendor\libusb-1.0.dll" ".venv\Scripts\libusb-1.0.dll" >nul 2>&1 ) ".venv\Scripts\python.exe" -c "import usb" 2>nul if errorlevel 1 ( echo [!] pyusb missing — reinstalling... call "scripts\setup_windows.bat" if errorlevel 1 exit /b 1 ) set "PYTHONPATH=%CD%;%PYTHONPATH%" set "JUC500_ROOT=%CD%" REM Dev: manual start.sh — Python GUI unless JUC500_USE_TAURI=1 if not "%JUC500_USE_TAURI%"=="1" goto legacy if exist "juc500-app\src-tauri\target\release\juc500-app.exe" ( start "" "juc500-app\src-tauri\target\release\juc500-app.exe" exit /b 0 ) if exist "juc500-app\src-tauri\target\debug\juc500-app.exe" ( start "" "juc500-app\src-tauri\target\debug\juc500-app.exe" exit /b 0 ) if exist "scripts\launch_tauri.bat" ( call "scripts\launch_tauri.bat" exit /b %ERRORLEVEL% ) :legacy REM Kill other juc500 instances holding USB Interface 5 ".venv\Scripts\python.exe" -c "from juc500_xfer.wormhole_kill import kill_other_juc500_processes; r=kill_other_juc500_processes(force=True); print(r.get('message') or '')" 2>nul ".venv\Scripts\python.exe" "%CD%\juc500_app.py" %*