#!/bin/bash set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" MODE="${1:-}" SUCCESS_TOPIC="${2:-${RESTORE_SUCCESS_TOPIC:-homelab-info}}" FAILURE_TOPIC="${RESTORE_FAILURE_TOPIC:-homelab-alerts}" if [ -z "$MODE" ]; then echo "Usage: $0 [success_topic]" >&2 exit 1 fi REPORT_ROOT="/mnt/user/backups/restore-reports" REPORT_FILE="$REPORT_ROOT/${MODE}-$(date +%F).md" WRAPPER_LOG="$REPORT_ROOT/_wrapper-${MODE}-$(date +%F).log" mkdir -p "$REPORT_ROOT" echo "Running restore job: $MODE" echo "Inner report (written by restore script): $REPORT_FILE" echo "Wrapper log (stdout/stderr of dispatcher): $WRAPPER_LOG" # Der Restore-Job schreibt seinen Markdown-Report selbst nach $REPORT_FILE. # Wir leiten stdout/stderr in eine separate Wrapper-Log-Datei, damit hier # kein zweiter Schreiber denselben Pfad ueberschreibt. if "$SCRIPT_DIR/run-restore-checks.sh" "$MODE" >"$WRAPPER_LOG" 2>&1; then echo "Restore job succeeded, sending ntfy..." "$SCRIPT_DIR/send-ntfy.sh" "$SUCCESS_TOPIC" "Restore job ok: $MODE" "Restore job succeeded. Report: $REPORT_FILE" default || true echo "Done" else echo "Restore job failed, sending ntfy..." "$SCRIPT_DIR/send-ntfy.sh" "$FAILURE_TOPIC" "Restore job failed: $MODE" "Restore job failed. Wrapper log: $WRAPPER_LOG (Report if written: $REPORT_FILE)" high || true exit 1 fi