46 lines
1.8 KiB
PowerShell
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).'
|