diff --git a/scripts/update.ps1 b/scripts/update.ps1 index e77fb8f..62c057b 100644 --- a/scripts/update.ps1 +++ b/scripts/update.ps1 @@ -1,9 +1,19 @@ # StatusQuo_Updates/scripts/update.ps1 # Zentraler Updater - wird von update.bat per Invoke-Expression geladen. -# Erwartet im aufrufenden Scope: $proj (Projektname z.B. 'VI3DGL'), $root (Installationspfad) +# Erwartet im aufrufenden Scope: +# $proj - Projektname (z.B. 'VI3DGL', 'FLD-Schichtplanung', 'DRIVE', 'Portal_Union') +# $root - Installationspfad (Verzeichnis mit server.ps1, VERSION usw.) +# $stopBat - (optional) Dateiname des Stop-Skripts, z.B. 'DRIVE_Stop.bat'. +# Leerstring '' = kein Stop-Schritt. Nicht gesetzt = Fallback auf 'stop.bat'. +# $startBat - (optional) Dateiname des Start-Skripts, z.B. 'DRIVE_Start.bat'. +# Nicht gesetzt = Fallback auf 'dgl.bat'. $ErrorActionPreference = 'Stop' $DistBase = "https://gitea.rhino.nrw/Rhino/StatusQuo_Updates/raw/branch/main/$proj" +# Stop/Start-Namen VOR jeder Ueberschreibung aus dem aufrufenden Scope lesen +$_stopName = if ($null -ne $stopBat) { $stopBat } else { 'stop.bat' } +$_startName = if ($null -ne $startBat) { $startBat } else { 'dgl.bat' } + # Lokale Version lesen $localVer = '0.0.0' $verFile = Join-Path $root 'VERSION' @@ -49,10 +59,16 @@ Invoke-WebRequest -Uri "$DistBase/sync-entpacken.bat" -OutFile (Join-Path $tmp ' # Server stoppen Write-Host "Stoppe Server ..." -$stopBat = Join-Path $root 'stop.bat' -if (Test-Path -LiteralPath $stopBat) { - & cmd /c "`"$stopBat`"" - Start-Sleep -Seconds 2 +if ($_stopName -ne '') { + $_stopPath = Join-Path $root $_stopName + if (Test-Path -LiteralPath $_stopPath) { + & cmd /c "`"$_stopPath`"" + Start-Sleep -Seconds 2 + } else { + Write-Host " (Stop-Skript '$_stopName' nicht gefunden — übersprungen)" -ForegroundColor DarkYellow + } +} else { + Write-Host " (Kein Stop-Skript konfiguriert — übersprungen)" -ForegroundColor DarkYellow } # Backup @@ -77,12 +93,12 @@ Write-Host "Version auf v$remoteVer aktualisiert." -ForegroundColor Green Remove-Item $tmp -Recurse -Force -ErrorAction SilentlyContinue # Server neu starten -$dglBat = Join-Path $root 'dgl.bat' -if (Test-Path -LiteralPath $dglBat) { - Start-Process -FilePath 'cmd.exe' -ArgumentList "/c `"$dglBat`"" -WindowStyle Hidden +$_startPath = Join-Path $root $_startName +if (Test-Path -LiteralPath $_startPath) { + Start-Process -FilePath 'cmd.exe' -ArgumentList "/c `"$_startPath`"" -WindowStyle Hidden Write-Host "Server gestartet." -ForegroundColor Green } else { - Write-Host "dgl.bat nicht gefunden — bitte Server manuell starten." -ForegroundColor Yellow + Write-Host "Start-Skript '$_startName' nicht gefunden — bitte Server manuell starten." -ForegroundColor Yellow } Write-Host "" Write-Host "=== Update abgeschlossen ===" -ForegroundColor Green