#!/bin/bash set -euo pipefail SOURCE_DIR=$(cd "$(dirname "$0")" && pwd) INSTALL_DIR="$HOME/Library/Application Support/PaperlessBackup" CONFIG_DIR="$HOME/.config/paperless-backup" PLIST="$HOME/Library/LaunchAgents/de.rob.paperless-ngx-backup.plist" LOG_DIR="$HOME/Library/Logs" UID_VALUE=$(id -u) mkdir -p "$INSTALL_DIR" "$CONFIG_DIR" "$(dirname "$PLIST")" "$LOG_DIR" install -m 700 "$SOURCE_DIR/backup-paperless-ngx.sh" "$INSTALL_DIR/backup-paperless-ngx.sh" if [ ! -f "$CONFIG_DIR/config" ]; then install -m 600 "$SOURCE_DIR/config.example" "$CONFIG_DIR/config" echo "Konfiguration angelegt: $CONFIG_DIR/config" else echo "Vorhandene Konfiguration bleibt unveraendert: $CONFIG_DIR/config" fi cat > "$PLIST" < Label de.rob.paperless-ngx-backup ProgramArguments $INSTALL_DIR/backup-paperless-ngx.sh StartCalendarInterval Hour 3 Minute 0 ProcessType Background StandardOutPath $LOG_DIR/paperless-ngx-launchd.out.log StandardErrorPath $LOG_DIR/paperless-ngx-launchd.err.log EOF chmod 600 "$PLIST" plutil -lint "$PLIST" launchctl bootout "gui/$UID_VALUE" "$PLIST" >/dev/null 2>&1 || true launchctl bootstrap "gui/$UID_VALUE" "$PLIST" echo "LaunchAgent installiert: taeglich um 03:00 Uhr" echo "Vor dem ersten echten Lauf bitte pruefen:" echo " $INSTALL_DIR/backup-paperless-ngx.sh --check"