Files
recurring-checklist/deploy/org.waterschurch.checklist-drive-backup.plist
Waters ChurchandClaude Opus 5 d188308d1f Version-control the backup LaunchAgent, with the path trap written down
The plist existed only in the transfer bundle, in a version that still pointed at
~/Documents — the path that macOS TCC silently refuses to let launchd execute from,
and the reason the nightly backup did nothing for eight days while logging nothing.

Captured from the ingest Mac as it now runs, with a README explaining why the
checkout must live outside ~/Documents and why the script cannot glob the Drive
folder. Both are easy to undo by accident and expensive to rediscover.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-24 14:50:18 -04:00

40 lines
1.5 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>org.waterschurch.checklist-drive-backup</string>
<key>ProgramArguments</key>
<array>
<string>/Users/Studio/checklist-app/backup-to-drive.sh</string>
</array>
<!-- 04:15, comfortably after the NAS writes its nightly backup at 03:30. A LaunchAgent
only runs while this user is logged in; if the Mac was asleep or off at 04:15,
launchd fires the job once shortly after it wakes, so a missed night self-heals. -->
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key><integer>4</integer>
<key>Minute</key><integer>15</integer>
</dict>
<key>RunAtLoad</key>
<false/>
<!-- The script keeps its own timestamped log; these catch anything it cannot, such as
the interpreter failing outright. -->
<key>StandardOutPath</key>
<string>/Users/Studio/Library/Logs/checklist-drive-backup.out.log</string>
<key>StandardErrorPath</key>
<string>/Users/Studio/Library/Logs/checklist-drive-backup.err.log</string>
<!-- expect and node live in the standard locations; launchd's default PATH is minimal. -->
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
</dict>
</plist>