Aetheria/scripts/verify-aetheria-daemon.ps1
2026-08-07 21:10:44 +01:00

52 lines
2.1 KiB
PowerShell

param(
[string] $CultLibRoot = "",
[string] $EveUnityRoot = "",
[string] $YmirRoot = ""
)
$ErrorActionPreference = "Stop"
$repoRoot = Split-Path -Parent $PSScriptRoot
$projectsRoot = Split-Path -Parent $repoRoot
if ([string]::IsNullOrWhiteSpace($CultLibRoot)) { $CultLibRoot = Join-Path $projectsRoot "CultLib" }
if ([string]::IsNullOrWhiteSpace($EveUnityRoot)) { $EveUnityRoot = Join-Path $projectsRoot "EveUnity" }
if ([string]::IsNullOrWhiteSpace($YmirRoot)) { $YmirRoot = Join-Path $projectsRoot "Ymir" }
$project = Join-Path $repoRoot "Aetheria.State.Daemon.Smoke\Aetheria.State.Daemon.Smoke.csproj"
foreach ($dependency in @(
@{ Name = "CultLib"; Path = $CultLibRoot },
@{ Name = "EveUnity"; Path = $EveUnityRoot },
@{ Name = "Ymir"; Path = $YmirRoot }
)) {
if (-not (Test-Path -LiteralPath $dependency.Path -PathType Container)) {
throw "$($dependency.Name) root does not exist: $($dependency.Path)"
}
}
$ymirSession = Join-Path $YmirRoot "src\Ymir.Core\YmirSession.cs"
$box2DProject = Join-Path $YmirRoot "src\Ymir.Box3D\Ymir.Box3D.csproj"
$box2DSource = Join-Path $YmirRoot "extern\box3d\CMakeLists.txt"
if (-not (Test-Path -LiteralPath $ymirSession -PathType Leaf) -or
-not (Test-Path -LiteralPath $box2DProject -PathType Leaf)) {
throw "Ymir does not expose the retained Box2D session API required by Aetheria. Use the current Aetheria integration revision."
}
if (-not (Test-Path -LiteralPath $box2DSource -PathType Leaf)) {
throw "Ymir's pinned Box2D submodule is missing. Run 'git -C $YmirRoot submodule update --init --recursive'."
}
$properties = @(
"-p:CultLibRoot=$CultLibRoot",
"-p:EveUnityRoot=$EveUnityRoot",
"-p:YmirRoot=$YmirRoot"
)
& dotnet restore $project @properties
if ($LASTEXITCODE -ne 0) {
throw "Aetheria daemon dependency restore failed with exit code $LASTEXITCODE."
}
& dotnet run --project $project @properties --no-restore
if ($LASTEXITCODE -ne 0) {
throw "Aetheria daemon smoke failed with exit code $LASTEXITCODE."
}
Write-Host "Aetheria daemon dependency-root and simulation verification passed."