"Location", never "campus", in everything people read; SC FOH joined with its MIDI links

- pages (NA 98 Locations / 99 Location, re-imported via PAGES_VERSION), keys, settings page, setup and
  install messages, alerts, docs, the Apollo Beach kit; python3 -m settings.location and /location/...
  addresses (the old names still answer for installed Macs)
- Apply reads the before settings from the file: an in-place edit skipped the watchdog restart
- SC: SUPERRACK (+SoundGrid) and X32 EDIT from SC FOH; FOH TRACKS and TRACKS LIGHTS MIDI links watched

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-21 13:42:22 -04:00
co-authored by Claude Opus 5.5
parent d0c755824b
commit 7068244ba4
31 changed files with 951 additions and 788 deletions
+9 -9
View File
@@ -1,15 +1,15 @@
#!/bin/bash
# backup-campuses.sh - every campus's status panel settings, off-site in Google Drive, nightly.
# backup-campuses.sh - every location's status panel settings, off-site in Google Drive, nightly.
#
# The same pattern as the checklist's backup-to-drive.sh on this Mac: a LaunchAgent runs it at 04:30,
# it copies into the shared Drive (Waters Creative > Apps > Status Panel Backups > <campus>), keeps
# the newest 30 per campus, and emails an alert (through the checklist's alert.js) when something
# it copies into the shared Drive (Waters Creative > Apps > Status Panel Backups > <location>), keeps
# the newest 30 per location, and emails an alert (through the checklist's alert.js) when something
# fails, because a backup nobody hears about failing is no backup.
#
# Only the hub (North Attleboro: no "home" in campuses.json) does anything; elsewhere it exits, except
# on a standalone campus (Apollo Beach), which backs up only itself into ~/Documents/Status Panel Backups.
# Each campus is reached over SSH with the panel's own key, as the account it reported. What is
# copied: config.json (the settings), history/ (every Apply), the page-key record and the campus
# on a standalone location (Apollo Beach), which backs up only itself into ~/Documents/Status Panel Backups.
# Each location is reached over SSH with the panel's own key, as the account it reported. What is
# copied: config.json (the settings), history/ (every Apply), the page-key record and the location
# lists. Never outlets.json (the smart-plug keys stay on their Mac).
set -uo pipefail
@@ -25,13 +25,13 @@ alert() {
[ -f "$js" ] && node "$js" "Status panel backup: $1" "${2:-}$(printf '\n\nLog: %s' "$LOG")" >> "$LOG" 2>&1 || true
}
MODE=$(/usr/bin/python3 -c 'import json,sys; d=json.load(open(sys.argv[1])); print("standalone" if d.get("standalone") else "campus" if d.get("home") else "hub" if d.get("list") else "")' \
MODE=$(/usr/bin/python3 -c 'import json,sys; d=json.load(open(sys.argv[1])); print("standalone" if d.get("standalone") else "location" if d.get("home") else "hub" if d.get("list") else "")' \
"$DEST/campuses.json" 2>/dev/null)
[ "$MODE" = hub ] || [ "$MODE" = standalone ] || { log "not the hub: nothing to back up from here"; exit 0; }
DRIVE=""
if [ "$MODE" = standalone ]; then
# A campus on its own (Apollo Beach) keeps its own copies, in this Mac's Documents (or wherever
# A location on its own (Apollo Beach) keeps its own copies, in this Mac's Documents (or wherever
# STATUS_PANEL_BACKUPS points, e.g. a Google Drive folder).
DRIVE="${STATUS_PANEL_BACKUPS:-$HOME/Documents/Status Panel Backups}"
else
@@ -82,7 +82,7 @@ for cid, e in sorted((d.get("list") or {}).items()):
PY
)
if [ -n "$FAILED" ]; then
alert "no backup tonight for:$FAILED" "The other campuses were backed up. A campus missing here is usually off, off the network, or no longer letting this Mac log in."
alert "no backup tonight for:$FAILED" "The other locations were backed up. A location missing here is usually off, off the network, or no longer letting this Mac log in."
exit 1
fi
log "── done ──"