Initial import of map-asset-gateway

This commit is contained in:
2026-04-14 13:10:10 +08:00
commit 1893ad3857
30 changed files with 6676 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
@echo off
setlocal
chcp 65001 >nul 2>&1
set "ROOT=%~dp0"
if exist "%ROOT%scripts\load-env.bat" call "%ROOT%scripts\load-env.bat" "%ROOT%config\service.env"
set "LAUNCHER_DIR=%ROOT%temp\launcher"
if "%API_PORT%"=="" set "API_PORT=8910"
echo ========================================
echo Map Asset Gateway Stopper
echo ========================================
echo.
call :stop_pid_file "Map Asset Gateway" "%LAUNCHER_DIR%\api.pid"
if not "%STOP_RESULT%"=="stopped" call :stop_port "Map Asset Gateway" "%API_PORT%"
call :stop_window_title "Map Asset Gateway"
echo.
echo Finished.
if "%NO_PAUSE%"=="" pause
exit /b 0
:stop_pid_file
set "STOP_RESULT=missing"
set "SERVICE_NAME=%~1"
set "PID_FILE=%~2"
if not exist "%PID_FILE%" (
echo [SKIP] %SERVICE_NAME% not running
set "SERVICE_NAME="
set "PID_FILE="
exit /b 0
)
set "TARGET_PID="
for /f "usebackq delims=" %%I in ("%PID_FILE%") do (
set "TARGET_PID=%%I"
goto :pid_loaded
)
:pid_loaded
if not defined TARGET_PID (
echo [SKIP] %SERVICE_NAME% not running
del /q "%PID_FILE%" >nul 2>&1
set "SERVICE_NAME="
set "PID_FILE="
set "TARGET_PID="
exit /b 0
)
call :kill_pid "%TARGET_PID%"
if not "%KILL_OK%"=="1" (
echo [SKIP] %SERVICE_NAME% not running
) else (
echo [OK] Stopped %SERVICE_NAME% PID=%TARGET_PID%
set "STOP_RESULT=stopped"
)
del /q "%PID_FILE%" >nul 2>&1
set "SERVICE_NAME="
set "PID_FILE="
set "TARGET_PID="
exit /b 0
:stop_port
set "SERVICE_NAME=%~1"
set "TARGET_PORT=%~2"
set "FOUND_PID="
for /f "tokens=5" %%I in ('netstat -ano -p TCP ^| findstr /R /C:":%TARGET_PORT% .*LISTENING"') do set "FOUND_PID=%%I"
if not defined FOUND_PID (
set "SERVICE_NAME="
set "TARGET_PORT="
exit /b 0
)
call :kill_pid "%FOUND_PID%"
if "%KILL_OK%"=="1" (
echo [OK] Stopped %SERVICE_NAME% by port %TARGET_PORT% PID=%FOUND_PID%
set "STOP_RESULT=stopped"
)
set "SERVICE_NAME="
set "TARGET_PORT="
set "FOUND_PID="
exit /b 0
:stop_window_title
taskkill /FI "WINDOWTITLE eq %~1*" /T /F >nul 2>&1
exit /b 0
:kill_pid
set "KILL_OK=0"
set "KILL_TARGET_PID=%~1"
if "%KILL_TARGET_PID%"=="" exit /b 0
taskkill /PID %KILL_TARGET_PID% /T /F >nul 2>&1
if errorlevel 1 (
powershell -NoProfile -ExecutionPolicy Bypass -Command "try { Stop-Process -Id %KILL_TARGET_PID% -Force -ErrorAction Stop; exit 0 } catch { exit 1 }" >nul 2>&1
if not errorlevel 1 set "KILL_OK=1"
) else (
set "KILL_OK=1"
)
set "KILL_TARGET_PID="
exit /b 0