- Restore Install-Windows.bat with npm primary + ZIP fallback for OpenCode - Restore Install-Linux.sh with npm primary + ZIP fallback for OpenCode - Restore Install-Mac.sh with npm primary + ZIP fallback for OpenCode - Add Launch-Windows.bat launcher with dependency checking and port detection - Add Launch-Unix.sh launcher for Linux/macOS - Add Launch-Dev-Windows.bat for development mode - All scripts use actual GitHub releases URLs for OpenCode - Enhanced with comprehensive error handling and user guidance
126 lines
4.4 KiB
Batchfile
126 lines
4.4 KiB
Batchfile
@echo off
|
|
title NomadArch Development Launcher
|
|
color 0B
|
|
setlocal enabledelayedexpansion
|
|
|
|
echo.
|
|
echo ███╗ ██╗ ██████╗ ███╗ ███╗ █████╗ ██████╗ █████╗ ██████╗ ██████╗██╗ ██╗
|
|
echo ████╗ ██║██╔═══██╗████╗ ████║██╔══██╗██╔══██╗██╔══██╗██╔════╝██║ ██║
|
|
echo ██╔██╗ ██║██║ ██║██╔████╔██║███████║██║ ██║███████║██████╔╝██║ ███████║
|
|
echo ██║╚██╗██║██║ ██║██║╚██╔╝██║██╔══██║██║ ██║██╔══██║██╔══██╗██║ ██╔══██║
|
|
echo ██║ ╚████║╚██████╔╝██║ ╚═╝ ██║██║ ██║██████╔╝██║ ██║██║ ██║╚██████╗██║ ██║
|
|
echo ╚═╝ ╚═══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝╚═╝ ╚═╝
|
|
echo.
|
|
echo DEVELOPMENT MODE - Separate Server & UI Terminals
|
|
echo ═════════════════════════════════════════════════════════════════════════════
|
|
echo.
|
|
|
|
cd /d "%~dp0"
|
|
|
|
echo [STEP 1/4] Checking Dependencies...
|
|
echo.
|
|
|
|
where node >nul 2>&1
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo [ERROR] Node.js not found!
|
|
echo.
|
|
echo Please install Node.js first: https://nodejs.org/
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
for /f "tokens=*" %%i in ('node --version') do set NODE_VERSION=%%i
|
|
echo [OK] Node.js: %NODE_VERSION%
|
|
|
|
where npm >nul 2>&1
|
|
if %ERRORLEVEL% neq 0 (
|
|
echo [ERROR] npm not found!
|
|
echo.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
for /f "tokens=*" %%i in ('npm --version') do set NPM_VERSION=%%i
|
|
echo [OK] npm: %NPM_VERSION%
|
|
|
|
echo.
|
|
echo [STEP 2/4] Checking for OpenCode CLI...
|
|
echo.
|
|
|
|
where opencode >nul 2>&1
|
|
if %ERRORLEVEL% equ 0 (
|
|
echo [OK] OpenCode is available in PATH
|
|
) else (
|
|
if exist "bin\opencode.exe" (
|
|
echo [OK] OpenCode binary found in bin/ folder
|
|
) else (
|
|
echo [WARN] OpenCode CLI not found
|
|
echo [INFO] Run Install-Windows.bat to install OpenCode
|
|
)
|
|
)
|
|
|
|
echo.
|
|
echo [STEP 3/4] Checking Port Availability...
|
|
echo.
|
|
|
|
set SERVER_PORT=3001
|
|
set UI_PORT=3000
|
|
|
|
netstat -ano | findstr ":%SERVER_PORT%" | findstr "LISTENING" >nul 2>&1
|
|
if %ERRORLEVEL% equ 0 (
|
|
echo [WARN] Port %SERVER_PORT% is already in use
|
|
echo [INFO] Another NomadArch instance may be running
|
|
echo [INFO] To find process: netstat -ano | findstr ":%SERVER_PORT%"
|
|
echo [INFO] To kill it: taskkill /F /PID ^<PID^>
|
|
) else (
|
|
echo [OK] Port %SERVER_PORT% is available
|
|
)
|
|
|
|
netstat -ano | findstr ":%UI_PORT%" | findstr "LISTENING" >nul 2>&1
|
|
if %ERRORLEVEL% equ 0 (
|
|
echo [WARN] Port %UI_PORT% is already in use
|
|
echo [INFO] To find process: netstat -ano | findstr ":%UI_PORT%"
|
|
echo [INFO] To kill it: taskkill /F /PID ^<PID^>
|
|
) else (
|
|
echo [OK] Port %UI_PORT% is available
|
|
)
|
|
|
|
echo.
|
|
echo [STEP 4/4] Starting NomadArch in Development Mode...
|
|
echo.
|
|
echo [INFO] This will open 3 separate terminal windows:
|
|
echo 1. Backend Server (port 3001)
|
|
echo 2. Frontend UI (port 3000)
|
|
echo 3. Electron App
|
|
echo.
|
|
echo [INFO] Press any key to start...
|
|
pause >nul
|
|
|
|
echo.
|
|
echo [INFO] Starting Backend Server...
|
|
start "NomadArch Server" cmd /k "cd /d \"%~dp0packages\server\" && npm run dev"
|
|
|
|
echo [INFO] Starting Frontend UI...
|
|
start "NomadArch UI" cmd /k "cd /d \"%~dp0packages\ui\" && npm run dev"
|
|
|
|
echo [INFO] Starting Electron App...
|
|
start "NomadArch Electron" cmd /k "cd /d \"%~dp0packages\electron-app\" && npm run dev"
|
|
|
|
echo.
|
|
echo [OK] All services started!
|
|
echo.
|
|
echo Press any key to stop all services (Ctrl+C in each window also works)...
|
|
pause >nul
|
|
|
|
echo.
|
|
echo [INFO] Stopping all services...
|
|
taskkill /F /FI "WINDOWTITLE eq NomadArch*" >nul 2>&1
|
|
taskkill /F /FI "WINDOWTITLE eq NomadArch Server*" >nul 2>&1
|
|
taskkill /F /FI "WINDOWTITLE eq NomadArch UI*" >nul 2>&1
|
|
taskkill /F /FI "WINDOWTITLE eq NomadArch Electron*" >nul 2>&1
|
|
|
|
echo [OK] All services stopped.
|
|
echo.
|
|
pause
|