diff --git a/start.ps1 b/start.ps1 new file mode 100644 index 0000000..0a3311f --- /dev/null +++ b/start.ps1 @@ -0,0 +1,60 @@ +# 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 + } +}