65 lines
1.4 KiB
Batchfile
65 lines
1.4 KiB
Batchfile
@echo off
|
|
setlocal
|
|
|
|
cd /d "%~dp0"
|
|
|
|
where docker >nul 2>nul
|
|
if errorlevel 1 (
|
|
echo [ERROR] Docker was not found. Install Docker Desktop first.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
docker info >nul 2>nul
|
|
if errorlevel 1 (
|
|
echo [NOTICE] Docker is not running. Start Docker Desktop manually, then run this script again.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
docker compose version >nul 2>nul
|
|
if errorlevel 1 (
|
|
echo [ERROR] The docker compose command is unavailable. Check your Docker Desktop installation.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
where go >nul 2>nul
|
|
if errorlevel 1 (
|
|
echo [ERROR] Go was not found. Install Go and add it to PATH first.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
if not exist "API\.env" (
|
|
echo [ERROR] API\.env is missing. The API cannot start.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo [1/3] Releasing port 8123...
|
|
for /f "tokens=5" %%P in ('netstat -ano ^| findstr /R /C:":8123 .*LISTENING"') do (
|
|
taskkill /F /PID %%P >nul 2>nul
|
|
)
|
|
|
|
echo [2/3] Checking and starting PostgreSQL and Redis containers...
|
|
docker compose -f "docker-compose.yml" up -d --wait --wait-timeout 60
|
|
if errorlevel 1 (
|
|
echo [ERROR] PostgreSQL or Redis failed to start. Check the Docker output above.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
echo [3/3] Starting the API. Press Ctrl+C to stop it.
|
|
pushd "API"
|
|
go run ./cmd/api
|
|
set "API_EXIT_CODE=%ERRORLEVEL%"
|
|
popd
|
|
|
|
if not "%API_EXIT_CODE%"=="0" (
|
|
echo [ERROR] The API exited with code %API_EXIT_CODE%.
|
|
pause
|
|
)
|
|
|
|
exit /b %API_EXIT_CODE%
|