Files
sufw-webseite-terminplanung/development-system/scripts/Deploy-Perspektivwerk.ps1
T

46 lines
1.8 KiB
PowerShell

[CmdletBinding()]
param()
$ErrorActionPreference = 'Stop'
$projectRoot = Split-Path -Parent $PSScriptRoot
$perspektivwerkSource = Join-Path $projectRoot 'public/perspektivwerk'
$remoteTarget = 'boogie:/home/boogie/html/perspektivwerk/'
if (-not (Test-Path -LiteralPath $perspektivwerkSource -PathType Container)) {
throw "Der zu übertragende Ordner '$perspektivwerkSource' wurde nicht gefunden."
}
$sourceItems = @(Get-ChildItem -LiteralPath $perspektivwerkSource -Force)
if ($sourceItems.Count -eq 0) {
throw "Der zu übertragende Ordner '$perspektivwerkSource' enthält keine Dateien."
}
if (-not (Get-Command scp -ErrorAction SilentlyContinue)) {
throw 'OpenSSH scp wurde nicht gefunden. Installiere den OpenSSH-Client oder füge ihn zum PATH hinzu.'
}
if (-not (Get-Command ssh -ErrorAction SilentlyContinue)) {
throw 'OpenSSH ssh wurde nicht gefunden. Installiere den OpenSSH-Client oder füge ihn zum PATH hinzu.'
}
Write-Host 'Zielverzeichnisse auf dem Server:'
Write-Host " $perspektivwerkSource\* -> $remoteTarget"
Write-Host "Übertrage ausschließlich die statische Perspektivwerk-Seite nach $remoteTarget"
Write-Host 'SCP-Upload und anschließende Rechtekorrektur benötigen jeweils eine SSH-Verbindung.'
& scp -r @sourceItems $remoteTarget
if ($LASTEXITCODE -ne 0) {
throw "Der Upload nach '$remoteTarget' ist fehlgeschlagen (scp Exit-Code $LASTEXITCODE)."
}
Write-Host 'Setze Lese- und Durchsuchrechte auf dem hochgeladenen Ordner.'
& ssh boogie 'chmod -R a+rX /home/boogie/html/perspektivwerk'
if ($LASTEXITCODE -ne 0) {
throw "Der Upload war erfolgreich, aber die Rechtekorrektur ist fehlgeschlagen (ssh Exit-Code $LASTEXITCODE)."
}
Write-Host 'Upload und Rechtekorrektur abgeschlossen: /home/boogie/html/perspektivwerk/ (inklusive js/booking.js).'