FEAT: Implement deceased/givenaway enclosure visibility rules, preserve external clan name, and hide receiver fields for deceased gerbils
This commit is contained in:
65
tools/import/run_app_and_import.ps1
Normal file
65
tools/import/run_app_and_import.ps1
Normal file
@@ -0,0 +1,65 @@
|
||||
# run_app_and_import.ps1
|
||||
# This script starts the .NET Aspire AppHost and automatically runs the database import once the WebAPI is ready.
|
||||
|
||||
Write-Host "Starting GerbilManager AppHost (this will boot PostgreSQL and the WebAPI)..." -ForegroundColor Cyan
|
||||
|
||||
# Start AppHost in the background
|
||||
$appProcess = Start-Process dotnet -ArgumentList "run --project GerbilManager.AppHost" -PassThru -NoNewWindow
|
||||
|
||||
# Function to cleanup process on exit
|
||||
function Cleanup {
|
||||
Write-Host "`nStopping AppHost..." -ForegroundColor Yellow
|
||||
if ($appProcess -and -not $appProcess.HasExited) {
|
||||
Stop-Process -Id $appProcess.Id -Force
|
||||
}
|
||||
}
|
||||
Register-EngineEvent -SourceIdentifier PowerShell.Exiting -Action { Cleanup }
|
||||
|
||||
try {
|
||||
# Poll the import endpoint until it becomes responsive (max 60 seconds)
|
||||
$url = "http://localhost:5179/import/ingest-resolved"
|
||||
$success = $false
|
||||
Write-Host "Waiting for WebAPI to become responsive at $url..." -ForegroundColor Cyan
|
||||
|
||||
for ($i = 0; $i -lt 30; $i++) {
|
||||
try {
|
||||
# Send a test request or check port
|
||||
$response = Invoke-WebRequest -Uri "http://localhost:5179/openapi/v1.json" -Method Get -TimeoutSec 2 -ErrorAction Stop
|
||||
if ($response.StatusCode -eq 200) {
|
||||
$success = $true
|
||||
break
|
||||
}
|
||||
}
|
||||
catch {
|
||||
# WebAPI not ready yet
|
||||
Start-Sleep -Seconds 2
|
||||
}
|
||||
}
|
||||
|
||||
if (-not $success) {
|
||||
Write-Host "Error: WebAPI did not become ready within 60 seconds." -ForegroundColor Red
|
||||
Cleanup
|
||||
exit 1
|
||||
}
|
||||
|
||||
Write-Host "WebAPI is up! Triggering the database import..." -ForegroundColor Green
|
||||
|
||||
# Run the import POST request
|
||||
try {
|
||||
$importResponse = Invoke-RestMethod -Uri $url -Method Post -ContentType "application/json"
|
||||
Write-Host "Import Result: $importResponse" -ForegroundColor Green
|
||||
Write-Host "`nThe application is now fully running and imported!" -ForegroundColor Cyan
|
||||
Write-Host "Press Ctrl+C in this terminal to stop the application." -ForegroundColor Yellow
|
||||
|
||||
# Keep script running to keep the app process alive
|
||||
while ($true) {
|
||||
Start-Sleep -Seconds 1
|
||||
}
|
||||
}
|
||||
catch {
|
||||
Write-Host "Error during database import: $_" -ForegroundColor Red
|
||||
}
|
||||
}
|
||||
finally {
|
||||
Cleanup
|
||||
}
|
||||
Reference in New Issue
Block a user