mailwolt/mailwolt-installer/scripts/install-wrapper.sh

47 lines
1.3 KiB
Bash

#!/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"