- Add TTSService.js for text-to-speech functionality - Add comprehensive deployment documentation (guides, checklists, diagnostics) - Add new SBS content (chapters 8 & 9) - Refactor 14 game modules for better maintainability (-947 lines) - Enhance SettingsDebug.js with improved debugging capabilities - Update configuration files and startup scripts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
273 lines
7.3 KiB
Batchfile
273 lines
7.3 KiB
Batchfile
@echo off
|
|
title Class Generator - Portable Edition (Safe Mode)
|
|
cd /d "%~dp0"
|
|
setlocal enabledelayedexpansion
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo Class Generator - Portable Edition
|
|
echo ========================================
|
|
echo.
|
|
|
|
:: ============================================
|
|
:: STEP 1: Check portable Node.js
|
|
:: ============================================
|
|
echo [1/7] Checking Node.js...
|
|
if not exist "nodejs-portable\node.exe" (
|
|
echo [ERROR] Node.js portable not found!
|
|
echo.
|
|
echo Please follow the setup instructions in PORTABLE_SETUP.txt
|
|
echo.
|
|
echo TROUBLESHOOTING:
|
|
echo - Run DIAGNOSTIC.bat to check your system
|
|
echo - Ensure nodejs-portable folder exists
|
|
echo.
|
|
goto :error_exit
|
|
)
|
|
|
|
:: Verify Node.js actually runs
|
|
"%~dp0nodejs-portable\node.exe" --version >nul 2>&1
|
|
if %errorlevel% neq 0 (
|
|
echo [ERROR] Node.js exists but won't run!
|
|
echo.
|
|
echo POSSIBLE CAUSES:
|
|
echo - Antivirus blocking node.exe
|
|
echo - Missing Visual C++ Redistributable
|
|
echo - Download corrupted
|
|
echo.
|
|
echo SOLUTIONS:
|
|
echo 1. Add exception in antivirus for this folder
|
|
echo 2. Run DIAGNOSTIC.bat for detailed check
|
|
echo 3. Re-download portable Node.js
|
|
echo.
|
|
goto :error_exit
|
|
)
|
|
echo OK - Node.js working
|
|
|
|
:: ============================================
|
|
:: STEP 2: Check dependencies
|
|
:: ============================================
|
|
echo [2/7] Checking dependencies...
|
|
if not exist "node_modules" (
|
|
echo Installing dependencies (this may take a few minutes)...
|
|
|
|
"%~dp0nodejs-portable\node.exe" "%~dp0nodejs-portable\node_modules\npm\bin\npm-cli.js" install
|
|
|
|
if !errorlevel! neq 0 (
|
|
echo [ERROR] Dependency installation failed!
|
|
echo.
|
|
echo POSSIBLE CAUSES:
|
|
echo - No internet connection
|
|
echo - Firewall blocking npm
|
|
echo - Disk space full
|
|
echo.
|
|
echo SOLUTION: Check DIAGNOSTIC_REPORT.txt
|
|
goto :error_exit
|
|
)
|
|
echo Dependencies installed successfully
|
|
) else (
|
|
echo OK - Dependencies present
|
|
)
|
|
|
|
:: ============================================
|
|
:: STEP 3: Port cleanup (SMART)
|
|
:: ============================================
|
|
echo [3/7] Checking port 8080...
|
|
|
|
:: Check if port is in use
|
|
netstat -ano | findstr :8080 | findstr LISTENING >nul
|
|
if %errorlevel% equ 0 (
|
|
echo WARNING: Port 8080 is in use
|
|
|
|
:: Find the PID
|
|
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :8080 ^| findstr LISTENING') do (
|
|
set PORT_PID=%%a
|
|
|
|
:: Check if it's a node.exe process
|
|
tasklist /fi "pid eq !PORT_PID!" | findstr node.exe >nul
|
|
if !errorlevel! equ 0 (
|
|
echo Killing previous Node.js server (PID: !PORT_PID!)...
|
|
taskkill /f /pid !PORT_PID! >nul 2>&1
|
|
timeout /t 1 /nobreak >nul
|
|
) else (
|
|
echo ERROR: Port 8080 used by another program!
|
|
echo.
|
|
echo SOLUTION:
|
|
echo - Close the other program
|
|
echo - Or edit server.js to use a different port
|
|
echo.
|
|
goto :error_exit
|
|
)
|
|
)
|
|
) else (
|
|
echo OK - Port 8080 available
|
|
)
|
|
|
|
:: ============================================
|
|
:: STEP 4: Critical files check
|
|
:: ============================================
|
|
echo [4/7] Verifying project files...
|
|
set FILES_MISSING=0
|
|
|
|
if not exist "server.js" (
|
|
echo ERROR: server.js missing
|
|
set /a FILES_MISSING+=1
|
|
)
|
|
if not exist "index.html" (
|
|
echo ERROR: index.html missing
|
|
set /a FILES_MISSING+=1
|
|
)
|
|
if not exist "src\Application.js" (
|
|
echo ERROR: src\Application.js missing
|
|
set /a FILES_MISSING+=1
|
|
)
|
|
|
|
if !FILES_MISSING! gtr 0 (
|
|
echo.
|
|
echo [ERROR] Critical files missing! Cannot start.
|
|
echo.
|
|
goto :error_exit
|
|
)
|
|
echo OK - All files present
|
|
|
|
:: ============================================
|
|
:: STEP 5: Start server with logging
|
|
:: ============================================
|
|
echo [5/7] Starting server...
|
|
|
|
:: Create logs directory if needed
|
|
if not exist "logs" mkdir logs
|
|
|
|
:: Start server with log output
|
|
start /b "" "%~dp0nodejs-portable\node.exe" server.js > logs\server.log 2>&1
|
|
|
|
:: Save the start time for timeout
|
|
set START_TIME=%time%
|
|
|
|
:: ============================================
|
|
:: STEP 6: Wait for server (SMART WAIT)
|
|
:: ============================================
|
|
echo [6/7] Waiting for server to initialize...
|
|
|
|
:: Try for max 10 seconds
|
|
set /a TIMEOUT=10
|
|
set /a COUNTER=0
|
|
|
|
:wait_for_server
|
|
if !COUNTER! geq !TIMEOUT! (
|
|
echo.
|
|
echo [ERROR] Server did not start within !TIMEOUT! seconds
|
|
echo.
|
|
echo Check logs\server.log for error details
|
|
echo.
|
|
type logs\server.log
|
|
echo.
|
|
goto :cleanup_and_exit
|
|
)
|
|
|
|
:: Try to connect to the server (curl-less check)
|
|
powershell -Command "(New-Object Net.WebClient).DownloadString('http://localhost:8080')" >nul 2>&1
|
|
if %errorlevel% equ 0 (
|
|
echo OK - Server is responding!
|
|
goto :server_ready
|
|
)
|
|
|
|
:: Wait 1 second and try again
|
|
timeout /t 1 /nobreak >nul
|
|
set /a COUNTER+=1
|
|
goto :wait_for_server
|
|
|
|
:server_ready
|
|
|
|
:: ============================================
|
|
:: STEP 7: Open browser
|
|
:: ============================================
|
|
echo [7/7] Opening Firefox...
|
|
|
|
:: FIREFOX ONLY - Edge and Chrome don't work in target environment
|
|
:: Try to find and launch Firefox
|
|
set FIREFOX_FOUND=0
|
|
|
|
:: Common Firefox locations - check in order
|
|
if exist "C:\Program Files\Mozilla Firefox\firefox.exe" (
|
|
start "" "C:\Program Files\Mozilla Firefox\firefox.exe" http://localhost:8080
|
|
set FIREFOX_FOUND=1
|
|
)
|
|
|
|
if !FIREFOX_FOUND! equ 0 (
|
|
if exist "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" (
|
|
start "" "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" http://localhost:8080
|
|
set FIREFOX_FOUND=1
|
|
)
|
|
)
|
|
|
|
if !FIREFOX_FOUND! equ 0 (
|
|
where firefox >nul 2>&1
|
|
if !errorlevel! equ 0 (
|
|
start firefox http://localhost:8080
|
|
set FIREFOX_FOUND=1
|
|
)
|
|
)
|
|
|
|
if !FIREFOX_FOUND! equ 0 (
|
|
echo.
|
|
echo [WARNING] Firefox not found automatically
|
|
echo.
|
|
echo Please open Firefox manually and go to:
|
|
echo http://localhost:8080
|
|
echo.
|
|
echo NOTE: Edge and Chrome will NOT work in your environment
|
|
echo You MUST use Firefox
|
|
echo.
|
|
)
|
|
|
|
echo.
|
|
echo ========================================
|
|
echo SUCCESS! Server is running
|
|
echo ========================================
|
|
echo.
|
|
echo URL: http://localhost:8080
|
|
echo Logs: logs\server.log
|
|
echo.
|
|
echo Press any key to STOP the server...
|
|
echo ========================================
|
|
echo.
|
|
|
|
pause >nul
|
|
|
|
:: ============================================
|
|
:: CLEANUP: Stop server
|
|
:: ============================================
|
|
:cleanup_and_exit
|
|
echo.
|
|
echo Stopping server...
|
|
|
|
:: Find and kill only our Node.js instance on port 8080
|
|
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :8080 ^| findstr LISTENING') do (
|
|
tasklist /fi "pid eq %%a" | findstr node.exe >nul
|
|
if !errorlevel! equ 0 (
|
|
echo Killing Node.js process (PID: %%a)
|
|
taskkill /f /pid %%a >nul 2>&1
|
|
)
|
|
)
|
|
|
|
echo Server stopped
|
|
echo.
|
|
pause
|
|
exit /b 0
|
|
|
|
:: ============================================
|
|
:: ERROR EXIT
|
|
:: ============================================
|
|
:error_exit
|
|
echo.
|
|
echo ========================================
|
|
echo STARTUP FAILED
|
|
echo ========================================
|
|
echo.
|
|
echo Run DIAGNOSTIC.bat for detailed analysis
|
|
echo Check logs\server.log if server started
|
|
echo.
|
|
pause
|
|
exit /b 1
|