deerflow-code/scripts/vscode-start.ps1
2026-09-07 18:24:55 +08:00

55 lines
1.4 KiB
PowerShell

param(
[int]$TimeoutSeconds = 90,
[switch]$OpenBrowser
)
. "$PSScriptRoot\env.ps1"
function Wait-HttpReady {
param(
[Parameter(Mandatory = $true)]
[string]$Name,
[Parameter(Mandatory = $true)]
[string]$Url,
[Parameter(Mandatory = $true)]
[datetime]$Deadline
)
Write-Host "Waiting for ${Name}: $Url"
while ((Get-Date) -lt $Deadline) {
try {
$response = Invoke-WebRequest -UseBasicParsing -Uri $Url -TimeoutSec 2
if ($response.StatusCode -ge 200 -and $response.StatusCode -lt 500) {
Write-Host "$Name is ready: $Url"
return
}
} catch {
Start-Sleep -Milliseconds 700
}
}
throw "Timed out waiting for ${Name}: $Url"
}
& "$PSScriptRoot\start-all.ps1"
if ($LASTEXITCODE -ne 0) {
exit $LASTEXITCODE
}
$deadline = (Get-Date).AddSeconds($TimeoutSeconds)
Wait-HttpReady -Name "backend" -Url "$BackendPublicBaseUrl/api/health" -Deadline $deadline
Wait-HttpReady -Name "frontend" -Url "$FrontendPublicBaseUrl/" -Deadline $deadline
Write-Host ""
Write-Host "DeerFlow is ready."
Write-Host "Frontend: $FrontendPublicBaseUrl/"
Write-Host "Backend: $BackendPublicBaseUrl"
Write-Host ""
Write-Host "Logs:"
Write-Host " Backend: $(Join-Path $LogDir 'backend.log')"
Write-Host " Frontend: $(Join-Path $LogDir 'frontend.log')"
if ($OpenBrowser) {
Start-Process "$FrontendPublicBaseUrl/"
}