From 5d6daccf038a03e386b7278cfd7379a01d651b10 Mon Sep 17 00:00:00 2001 From: boksbc Date: Sat, 25 Oct 2025 13:40:13 +0200 Subject: [PATCH] Dovecot Systax Problem --- scripts/88-update-wrapper.sh | 39 +++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/scripts/88-update-wrapper.sh b/scripts/88-update-wrapper.sh index 0e48f99..8dd80e4 100644 --- a/scripts/88-update-wrapper.sh +++ b/scripts/88-update-wrapper.sh @@ -31,7 +31,6 @@ set -euo pipefail LOG="/var/log/mailwolt-update.log" STATE_DIR="/var/lib/mailwolt/update" -VERSION_FILE="/var/lib/mailwolt/version" CANDIDATES=( /opt/mailwolt-installer/scripts/update.sh @@ -39,20 +38,23 @@ CANDIDATES=( /usr/local/lib/mailwolt/update.sh ) -# Beste vorhandene update.sh finden +# bestes update.sh finden SCRIPT="" for p in "${CANDIDATES[@]}"; do if [[ -x "$p" ]]; then SCRIPT="$p"; break; fi if [[ -f "$p" && -r "$p" ]]; then SCRIPT="$p"; break; fi done -install -d -m 0755 "$STATE_DIR" +install -d -m 0755 "$(dirname "$LOG")" "$STATE_DIR" /var/lib/mailwolt +: > "$LOG" || true +chmod 0644 "$LOG" + echo "running" > "$STATE_DIR/state" { echo "===== $(date -Is) :: Update gestartet =====" if [[ -z "$SCRIPT" ]]; then - echo "[!] update.sh nicht gefunden oder nicht ausführbar (versucht: ${CANDIDATES[*]})" + echo "[!] update.sh nicht gefunden (versucht: ${CANDIDATES[*]})" rc=127 else echo "[i] benutze: $SCRIPT" @@ -60,33 +62,34 @@ echo "running" > "$STATE_DIR/state" echo "[!] Bitte als root ausführen" rc=1 else - # Dirty-Working-Tree zulassen, damit UI-Commits/Änderungen kein Blocker sind - if [[ -x "$SCRIPT" ]]; then - ALLOW_DIRTY=1 "$SCRIPT" - else - ALLOW_DIRTY=1 bash "$SCRIPT" - fi + if [[ -x "$SCRIPT" ]]; then ALLOW_DIRTY=1 "$SCRIPT"; else ALLOW_DIRTY=1 bash "$SCRIPT"; fi rc=$? fi fi echo "===== $(date -Is) :: Update beendet (rc=$rc) =====" - # Version schreiben (Git-Tag oder Commit) + # ── Version schreiben (aus App-Repo, Fallback Installer) ───────────────────── if command -v git >/dev/null 2>&1; then - cd /opt/mailwolt-installer >/dev/null 2>&1 || true + REPO="/var/www/mailwolt" + [[ -d "$REPO/.git" ]] || REPO="/opt/mailwolt-installer" + cd "$REPO" >/dev/null 2>&1 || true + raw=$(git describe --tags --always --dirty 2>/dev/null || echo "unknown") + # "v" entfernen & Build-Suffixe kappen norm=$(printf '%s' "$raw" | sed -E 's/^v//; s/-.*$//') - echo "$raw" > /var/lib/mailwolt/version_raw - echo "$norm" > /var/lib/mailwolt/version + printf '%s\n' "$raw" > /var/lib/mailwolt/version_raw + printf '%s\n' "$norm" > /var/lib/mailwolt/version + chmod 0644 /var/lib/mailwolt/version_raw /var/lib/mailwolt/version - echo "[i] Version aktualisiert: raw=$raw norm=$norm" + echo "[i] Version aktualisiert: raw=$raw norm=$norm (Quelle: $REPO)" else - echo "unknown" > /var/lib/mailwolt/version_raw - echo "0.0.0" > /var/lib/mailwolt/version + printf '%s\n' "unknown" > /var/lib/mailwolt/version_raw + printf '%s\n' "0.0.0" > /var/lib/mailwolt/version + chmod 0644 /var/lib/mailwolt/version_raw /var/lib/mailwolt/version fi - echo "$rc" > "$STATE_DIR/rc" + printf '%s\n' "$rc" > "$STATE_DIR/rc" echo "done" > "$STATE_DIR/state" exit "$rc" } | tee -a "$LOG"