47 lines
1.3 KiB
Bash
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"
|