@echo off setlocal enabledelayedexpansion set ROOT=%~dp0 for %%A in ("%ROOT%..") do set SERVICES_DIR=%%~fA\ REM ---------------------------------------- REM List of project names to skip REM (space-separated, match folder names exactly) REM ---------------------------------------- set SKIP_PROJECTS=FictionArchive.Service.Shared FictionArchive.Service.AuthenticationService echo ---------------------------------------- echo Finding GraphQL services... echo ---------------------------------------- set SERVICE_LIST= for /d %%F in ("%SERVICES_DIR%FictionArchive.Service.*") do ( set "PROJECT_NAME=%%~nxF" set "SKIP=0" REM Check if this project name is in the skip list for %%X in (%SKIP_PROJECTS%) do ( if /I "!PROJECT_NAME!"=="%%X" ( set "SKIP=1" ) ) if !SKIP!==0 ( echo Found service: !PROJECT_NAME! set SERVICE_LIST=!SERVICE_LIST! %%F ) else ( echo Skipping service: !PROJECT_NAME! ) ) echo: echo ---------------------------------------- echo Exporting schemas and packing subgraphs... echo ---------------------------------------- for %%S in (%SERVICE_LIST%) do ( echo Processing service folder: %%S pushd "%%S" echo Running schema export... dotnet run -- schema export --output schema.graphql if errorlevel 1 ( echo ERROR during schema export in %%S popd exit /b 1 ) echo Running fusion subgraph pack... fusion subgraph pack if errorlevel 1 ( echo ERROR during subgraph pack in %%S popd exit /b 1 ) popd echo Completed: %%S echo. ) echo ---------------------------------------- echo Running fusion compose... echo ---------------------------------------- pushd "%ROOT%" if exist gateway.fgp del gateway.fgp for %%S in (%SERVICE_LIST%) do ( REM Extract the full folder name WITH dots preserved set "SERVICE_NAME=%%~nxS" echo Composing subgraph: !SERVICE_NAME! fusion compose -p gateway.fgp -s "..\!SERVICE_NAME!" if errorlevel 1 ( echo ERROR during fusion compose popd exit /b 1 ) ) popd echo ---------------------------------------- echo Fusion build complete! echo ---------------------------------------- endlocal exit /b 0