Class_generator/DIAGNOSTIC.bat
StillHammer 8ebc0b2334 Add TTS service, deployment docs, and refactor game modules
- 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>
2025-10-18 23:41:12 +08:00

250 lines
7.4 KiB
Batchfile

@echo off
title Class Generator - Diagnostic System
cd /d "%~dp0"
setlocal enabledelayedexpansion
echo.
echo ========================================
echo CLASS GENERATOR - DIAGNOSTIC
echo ========================================
echo.
echo Running pre-flight checks...
echo.
set ERROR_COUNT=0
set WARNING_COUNT=0
:: ============================================
:: 1. SYSTEM CHECKS
:: ============================================
echo [CHECK 1/8] Windows Version...
ver | findstr /i "10.0" >nul
if %errorlevel% equ 0 (
echo [OK] Windows 10 detected
) else (
echo [WARNING] Not Windows 10, but might work
set /a WARNING_COUNT+=1
)
:: ============================================
:: 2. PORTABLE NODE.JS
:: ============================================
echo [CHECK 2/8] Portable Node.js...
if exist "nodejs-portable\node.exe" (
echo [OK] Node.exe found
:: Test if it runs
"nodejs-portable\node.exe" --version >nul 2>&1
if !errorlevel! equ 0 (
for /f "tokens=*" %%v in ('"nodejs-portable\node.exe" --version') do set NODE_VERSION=%%v
echo [OK] Node.js !NODE_VERSION! working
) else (
echo [ERROR] Node.exe exists but doesn't run
echo Possible causes:
echo - Antivirus blocking execution
echo - Missing Visual C++ Runtime
echo - Corrupted download
set /a ERROR_COUNT+=1
)
) else (
echo [ERROR] nodejs-portable\node.exe NOT FOUND
echo Please run PORTABLE_SETUP.txt instructions
set /a ERROR_COUNT+=1
)
:: ============================================
:: 3. NPM (inside portable Node)
:: ============================================
echo [CHECK 3/8] NPM availability...
if exist "nodejs-portable\node_modules\npm\bin\npm-cli.js" (
echo [OK] NPM found in portable Node
) else (
echo [ERROR] NPM not found in portable package
echo Re-download Node.js portable with npm included
set /a ERROR_COUNT+=1
)
:: ============================================
:: 4. PROJECT FILES
:: ============================================
echo [CHECK 4/8] Critical project files...
set MISSING_FILES=0
if not exist "server.js" (
echo [ERROR] server.js missing
set /a MISSING_FILES+=1
)
if not exist "src\Application.js" (
echo [ERROR] src\Application.js missing
set /a MISSING_FILES+=1
)
if not exist "index.html" (
echo [ERROR] index.html missing
set /a MISSING_FILES+=1
)
if !MISSING_FILES! equ 0 (
echo [OK] All critical files present
) else (
echo [ERROR] !MISSING_FILES! critical files missing
set /a ERROR_COUNT+=!MISSING_FILES!
)
:: ============================================
:: 5. PORT 8080 AVAILABILITY
:: ============================================
echo [CHECK 5/8] Port 8080 availability...
netstat -ano | findstr :8080 | findstr LISTENING >nul
if %errorlevel% equ 0 (
echo [WARNING] Port 8080 is currently in use
echo Will attempt to free it on startup
set /a WARNING_COUNT+=1
:: Find what's using it
for /f "tokens=5" %%a in ('netstat -ano ^| findstr :8080 ^| findstr LISTENING') do (
set PID=%%a
echo Process ID: !PID!
for /f "tokens=1" %%b in ('tasklist /fi "pid eq !PID!" /fo table /nh') do (
echo Program: %%b
)
)
) else (
echo [OK] Port 8080 is available
)
:: ============================================
:: 6. WRITE PERMISSIONS
:: ============================================
echo [CHECK 6/8] Write permissions...
echo test > test_write_permission.tmp 2>nul
if exist test_write_permission.tmp (
del test_write_permission.tmp >nul 2>&1
echo [OK] Can write to directory
) else (
echo [ERROR] No write permission in current directory
echo Try running as Administrator
echo Or move folder to Documents/Desktop
set /a ERROR_COUNT+=1
)
:: ============================================
:: 7. FIREWALL CHECK (informational)
:: ============================================
echo [CHECK 7/8] Firewall status...
netsh advfirewall show currentprofile state | findstr ON >nul
if %errorlevel% equ 0 (
echo [INFO] Windows Firewall is ON
echo You may need to allow Node.js on first run
) else (
echo [INFO] Windows Firewall is OFF
)
:: ============================================
:: 8. FIREFOX AVAILABILITY (CRITICAL)
:: ============================================
echo [CHECK 8/9] Firefox availability...
set FIREFOX_AVAILABLE=0
:: Check common Firefox locations
if exist "C:\Program Files\Mozilla Firefox\firefox.exe" (
echo [OK] Firefox found at: C:\Program Files\Mozilla Firefox\
set FIREFOX_AVAILABLE=1
)
if !FIREFOX_AVAILABLE! equ 0 (
if exist "C:\Program Files (x86)\Mozilla Firefox\firefox.exe" (
echo [OK] Firefox found at: C:\Program Files ^(x86^)\Mozilla Firefox\
set FIREFOX_AVAILABLE=1
)
)
if !FIREFOX_AVAILABLE! equ 0 (
where firefox >nul 2>&1
if !errorlevel! equ 0 (
echo [OK] Firefox found in PATH
set FIREFOX_AVAILABLE=1
)
)
if !FIREFOX_AVAILABLE! equ 0 (
echo [ERROR] Firefox NOT FOUND
echo Firefox is REQUIRED - Edge/Chrome do not work
echo.
echo SOLUTIONS:
echo 1. Install Firefox from mozilla.org
echo 2. Use Firefox Portable ^(no install needed^)
echo 3. Ask IT to install Firefox
set /a ERROR_COUNT+=1
)
:: ============================================
:: 9. ANTIVIRUS HEURISTIC CHECK
:: ============================================
echo [CHECK 9/9] Antivirus interference check...
:: Try to create and execute a simple .bat file
echo @echo ok > test_exec.bat 2>nul
if exist test_exec.bat (
call test_exec.bat >nul 2>&1
if !errorlevel! equ 0 (
echo [OK] No obvious script blocking
del test_exec.bat >nul 2>&1
) else (
echo [WARNING] Script execution might be blocked
echo Check antivirus settings
set /a WARNING_COUNT+=1
del test_exec.bat >nul 2>&1
)
) else (
echo [WARNING] Cannot create test scripts
set /a WARNING_COUNT+=1
)
:: ============================================
:: SUMMARY
:: ============================================
echo.
echo ========================================
echo DIAGNOSTIC SUMMARY
echo ========================================
echo.
echo Errors: !ERROR_COUNT!
echo Warnings: !WARNING_COUNT!
echo.
if !ERROR_COUNT! equ 0 (
if !WARNING_COUNT! equ 0 (
echo [SUCCESS] System is ready to run!
echo You can now execute START_PORTABLE.bat
echo.
) else (
echo [CAUTION] System should work but has warnings
echo Proceed with START_PORTABLE.bat
echo Monitor for issues
echo.
)
) else (
echo [FAILURE] Critical errors detected!
echo DO NOT run START_PORTABLE.bat yet
echo Fix errors above first
echo.
)
:: ============================================
:: SAVE REPORT
:: ============================================
echo Saving diagnostic report to DIAGNOSTIC_REPORT.txt...
(
echo CLASS GENERATOR - DIAGNOSTIC REPORT
echo Generated: %date% %time%
echo ========================================
echo.
echo Errors: !ERROR_COUNT!
echo Warnings: !WARNING_COUNT!
echo.
echo For support, send this file to the developer
) > DIAGNOSTIC_REPORT.txt
echo Report saved!
echo.
pause