diff --git a/scripts/88-update-wrapper.sh b/scripts/88-update-wrapper.sh index 5b9e4cf..9da2c9f 100644 --- a/scripts/88-update-wrapper.sh +++ b/scripts/88-update-wrapper.sh @@ -70,20 +70,25 @@ echo "running" > "$STATE_DIR/state" # ── Version schreiben (aus App-Repo, Fallback Installer) ───────────────────── if command -v git >/dev/null 2>&1; then - if [ -d /var/www/mailwolt/.git ]; then - cd /var/www/mailwolt >/dev/null 2>&1 || true - elif [ -d /opt/mailwolt-installer/.git ]; then - cd /opt/mailwolt-installer >/dev/null 2>&1 || true + SRC="/var/www/mailwolt" + if [ ! -d "$SRC/.git" ]; then + SRC="/opt/mailwolt-installer" fi - raw="$(git describe --tags --always --dirty 2>/dev/null || echo "unknown")" - norm="$(printf '%s' "$raw" | sed -E 's/^v//; s/-.*$//')" + # falls shallow: Tags nachziehen + if [ -f "$SRC/.git/shallow" ]; then + git -C "$SRC" fetch --unshallow --quiet || true + fi + git -C "$SRC" fetch --tags --quiet origin || true + + raw="$(git -C "$SRC" describe --tags --always --dirty 2>/dev/null || echo "unknown")" + norm="$(printf '%s' "$raw" | sed -E 's/^[vV]//; s/-.*$//')" 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 (Quelle: $(pwd))" + echo "[i] Version aktualisiert: raw=$raw norm=$norm (Quelle: $SRC)" else echo "unknown" > /var/lib/mailwolt/version_raw echo "0.0.0" > /var/lib/mailwolt/version