#!/usr/bin/env bash # Mailwolt Installer-Wrapper # Deploy to: /usr/local/sbin/mailwolt-install # Permissions: chmod 0755, chown root:root set -euo pipefail LOG="/var/log/mailwolt-install.log" STATE_DIR="/var/lib/mailwolt/install" INSTALLER_SCRIPT="/var/www/mailwolt/mailwolt-installer/install.sh" APP_DIR="/var/www/mailwolt" install -d -m 0755 "$STATE_DIR" /var/lib/mailwolt /var/lib/mailwolt/wizard chown www-data:www-data /var/lib/mailwolt/wizard : > "$LOG" chmod 0644 "$LOG" echo "running" > "$STATE_DIR/state" : > "$STATE_DIR/rc" { echo "===== $(date -Is) :: Installation gestartet =====" if [[ "$(id -u)" -ne 0 ]]; then echo "[!] Muss als root laufen" printf '1\n' > "$STATE_DIR/rc" echo "done" > "$STATE_DIR/state" exit 1 fi # Komponente aus $1, falls übergeben (z.B. "nginx", "postfix", "dovecot", "all") COMPONENT="${1:-all}" echo "[i] Komponente: $COMPONENT" RC=0 if [[ -f "$INSTALLER_SCRIPT" ]]; then APP_DIR="$APP_DIR" COMPONENT="$COMPONENT" bash "$INSTALLER_SCRIPT" || RC=$? else echo "[!] installer script nicht gefunden: $INSTALLER_SCRIPT" RC=127 fi echo "===== $(date -Is) :: Installation beendet (rc=$RC) =====" printf '%s\n' "$RC" > "$STATE_DIR/rc" echo "done" > "$STATE_DIR/state" exit "$RC" } 2>&1 | tee -a "$LOG"