Files
dps-webshop/start.ps1
2025-06-15 16:18:45 +02:00

61 lines
1.7 KiB
PowerShell

# Funktion zur Bereinigung beim Beenden
function OnExit {
Write-Host "`n[DPS] Cleaning up..."
if ($backendProcess -and !$backendProcess.HasExited) {
$backendProcess.Kill()
}
if ($frontendProcess -and !$frontendProcess.HasExited) {
$frontendProcess.Kill()
}
Write-Host "[DPS] Cleaned up..."
# Einen Ordner höher gehen
Set-Location (Resolve-Path "..").Path
Write-Host "[DPS] Returned to parent directory: $(Get-Location)"
exit
}
Write-Host "[DPS] trapped"
# Backend starten
Set-Location ./00-backend
$backendOutLog = "../backend_latest.out.log"
$backendErrLog = "../backend_latest.err.log"
$backendProcess = Start-Process "java" -ArgumentList "-jar", "target/webshop-0.0.1-SNAPSHOT.jar" `
-RedirectStandardOutput $backendOutLog `
-RedirectStandardError $backendErrLog `
-NoNewWindow -PassThru
Write-Host "[DPS] Backend started with PID $($backendProcess.Id)"
# Frontend starten (ohne cmd.exe)
Set-Location ../01-frontend
$frontendOutLog = "../frontend_latest.out.log"
$frontendErrLog = "../frontend_latest.err.log"
$frontendProcess = Start-Process "node" `
-ArgumentList "node_modules/.bin/react-scripts", "start" `
-RedirectStandardOutput $frontendOutLog `
-RedirectStandardError $frontendErrLog `
-NoNewWindow -PassThru
Write-Host "[DPS] Frontend started with PID $($frontendProcess.Id)"
Write-Host "[DPS] Ctrl+C to stop"
Register-EngineEvent PowerShell.Exiting -Action { OnExit } -SupportEvent
try {
while ($true) {
Start-Sleep -Seconds 1
if ($backendProcess.HasExited -and $frontendProcess.HasExited) {
break
}
}
}
catch {
if ($_.Exception -is [System.Management.Automation.PipelineStoppedException]) {
# This block will not execute on CTRL-C
}
}