Fix dead-variable and exit-code bugs found in codebase-wide audit

Same audit as the orchestrator standardization pass (2a062e5), extended to
every remaining script. Found the same class of bug independently recurring:
ramdisk_stop.sh checked $LOG (nothing assigns it, should be $ENABLE_LOGGING),
partnership_onboard.sh checked $LOG_MODE (same issue), emby_session_report.sh
checked $TRANSCODE_PCT which was never computed so the high-transcode alert
could never fire, and storage_migrate.sh never called detect_hosts() so
$MY_ID was empty, silently breaking the post-migration host*.conf update.
partnership_manager.sh used `local` at top-level script scope (invalid outside
a function) and had two master.conf path references missing "Configurations/".

Along the way: several scripts (share_setup.sh, conf_sync.sh,
downloaders_reset.sh, transcode_cleanup.sh, transcode_manager.sh,
remote_arr_cache_writer.sh, upgrade_webhook_handler.sh) had no explicit
trailing exit code, so they always reported success regardless of real
failures. play_state_sync.sh was missing the partnership gate its own header
documented, so remote play-state sync ran even with PARTNERSHIP_ENABLED=false;
it also always exited 0 on sync errors. arr_profile_enforcer.sh and
webhook_setup.sh hand-rolled their own flag parsing instead of common.sh's
parse_args, so --log silently did nothing on either.

system_watchdog.sh was itself an un-standardized mini-orchestrator — converted
to the shared run_orch_child()/JOB_PASS/JOB_FAIL pattern, added the missing
failure notification, and fixed dry-run to pass --dry-run down to children
instead of skipping them outright. Also fixed a stale webgui_watchdog.sh path
in master.conf.template that would break system_watchdog.sh on any fresh
install.

Closed a sibling-drift gap: radarr_cleanup.sh and sonarr_cleanup.sh were
missing lidarr_cleanup.sh's tracked-count percentage-drop safety gate and its
"not configured on this host, skip cleanly" guard — both now match Lidarr's
7-gate model.
This commit is contained in:
Gmer4Lfe
2026-07-03 17:35:30 -04:00
parent eb8c6bb1be
commit 69189bbf18
21 changed files with 197 additions and 76 deletions
+8
View File
@@ -123,11 +123,14 @@ echo "[$(date '+%H:%M:%S')] Upgrade push: ${ARR_TYPE} — ${ITEM_NAME}"
echo " Path: $ITEM_PATH"
echo " Targets: ${REMOTE_NODES[*]}"
NODE_FAIL=0
# ── Push and rescan each remote ───────────────────────────────────────────────────────────────
for node_id in "${REMOTE_NODES[@]}"; do
node_name="${!node_id}"
node_ip=$(resolve_tailscale_ip "$node_name") || {
echo " [${node_name}] Cannot resolve Tailscale IP — skipping"
(( NODE_FAIL++ ))
continue
}
@@ -142,6 +145,7 @@ for node_id in "${REMOTE_NODES[@]}"; do
if [[ "$rsync_exit" -ne 0 ]]; then
echo " [${node_name}] rsync failed (exit ${rsync_exit}) — skipping rescan"
(( NODE_FAIL++ ))
continue
fi
echo " [${node_name}] rsync done (${transferred:-0} bytes)"
@@ -177,7 +181,11 @@ REMOTE
echo " [${node_name}] ${RESCAN_CMD} triggered ✅"
else
echo " [${node_name}] ${RESCAN_CMD} failed (HTTP ${http_code:-timeout})"
(( NODE_FAIL++ ))
fi
done
echo "[$(date '+%H:%M:%S')] Done — ${ITEM_NAME}"
[[ "$NODE_FAIL" -gt 0 ]] && exit 1
exit 0