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>
40 lines
1.5 KiB
Plaintext
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>
|