From 76c062319075df81653391394dfad43a4de4476f Mon Sep 17 00:00:00 2001 From: Gmer4Lfe Date: Sat, 27 Jun 2026 18:08:46 -0400 Subject: [PATCH] Align lidarr_release_fixer.sh header with sibling script standard --- Media/lidarr_release_fixer.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Media/lidarr_release_fixer.sh b/Media/lidarr_release_fixer.sh index 1115219..dbb064e 100755 --- a/Media/lidarr_release_fixer.sh +++ b/Media/lidarr_release_fixer.sh @@ -35,6 +35,37 @@ # Lidarr handles the post-refresh rescan and import automatically. # # ============================================================================================== +# DESIGN PRINCIPLES +# ============================================================================================== +# +# Fixer Before Cleanup +# Runs before lidarr_cleanup.sh in the daily job list. The strike system in +# cleanup provides a protection window, but correcting releases first means +# files that were wrongly treated as orphans get imported rather than aged out. +# +# No Blind Fixes +# Only switches to a release that is already in Lidarr's known release list for +# that album. If the file's MBID isn't a recognized release, the album is skipped +# rather than guessed at. False corrections are worse than leaving it alone. +# +# Files Are Never Touched +# This script only modifies the Lidarr database record (release selection). Audio +# files, tags, and directory structure are read-only. All actual importing is +# handled by Lidarr after RefreshArtist runs. +# +# ============================================================================================== +# OPERATIONAL SAFEGUARDS +# ============================================================================================== +# +# check_api — API reachability verified before any processing +# check_arr_version — aborts if Lidarr major version doesn't match LIDARR_VERSION_MAJOR +# artist count > 0 — aborts if artist fetch returns empty (API anomaly guard) +# release list validation — only fixes to releases explicitly known to Lidarr for that album +# acquire_lock "skip" — skips if another instance is already running +# detect_hosts() — exits cleanly on hosts without Lidarr configured +# curl + jq + perl check — fail fast if any required tool is missing +# +# ============================================================================================== # TAG READING # ============================================================================================== # @@ -47,10 +78,13 @@ # ============================================================================================== # # host*.conf +# # HOST1_LIDARR_URL / HOST1_LIDARR_API_KEY / HOST1_LIDARR_MUSIC_ROOT # HOST1_LIDARR_PATH_MAP — container path → host path translation +# All aliased by detect_hosts() — script uses unprefixed names # # master.conf +# # LIDARR_RELEASE_FIXER_ENABLED — set false to disable without removing from job list # LIDARR_VERSION_MAJOR — expected Lidarr major version for API safety check #