@echo off setlocal set "AIR_VERSION=v1.61.7" cd /d "%~dp0admin" if errorlevel 1 ( echo [ERROR] Cannot enter the admin directory. pause exit /b 1 ) where go >nul 2>&1 if errorlevel 1 ( echo [ERROR] Go was not found. Install Go 1.23.0 and reopen the terminal. pause exit /b 1 ) for /f "usebackq delims=" %%G in (`go env GOPATH`) do set "ADMIN_GOPATH=%%G" if not defined ADMIN_GOPATH ( echo [ERROR] Cannot read GOPATH. pause exit /b 1 ) set "AIR_EXE=%ADMIN_GOPATH%\bin\air.exe" set "NEED_INSTALL=0" if not exist "%AIR_EXE%" set "NEED_INSTALL=1" if exist "%AIR_EXE%" ( "%AIR_EXE%" -v 2>nul | findstr /c:"%AIR_VERSION%" >nul if errorlevel 1 set "NEED_INSTALL=1" ) if "%NEED_INSTALL%"=="1" ( echo [INFO] Installing Air %AIR_VERSION% for Go 1.23... go install github.com/air-verse/air@%AIR_VERSION% if errorlevel 1 ( echo [ERROR] Air installation failed. Check the network and GOPROXY. pause exit /b 1 ) ) echo [INFO] Starting Admin with hot reload. Press Ctrl+C to stop. "%AIR_EXE%" -c .air.toml set "ADMIN_EXIT_CODE=%ERRORLEVEL%" if not "%ADMIN_EXIT_CODE%"=="0" ( echo [ERROR] Admin stopped with exit code %ADMIN_EXIT_CODE%. pause ) endlocal & exit /b %ADMIN_EXIT_CODE%