From 748fde25c007d6240d72cd36867b892f6b90fc05 Mon Sep 17 00:00:00 2001 From: librelad Date: Mon, 6 Jul 2026 19:49:59 +0100 Subject: [PATCH] fix(catalog): store sources.json in the state root, not under configs/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every file under $configs_dir is treated as a config (some get sourced at startup), so a JSON file there was executed as bash — "[name:…]: command not found" on every config load. Move it beside the apps DB in the manager state root ($docker_dir/catalog/sources.json): persistent, manager-owned, and never config-scanned. Signed-off-by: librelad Co-Authored-By: Claude Opus 4.8 (1M context) --- scripts/catalog/catalog_sources.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/scripts/catalog/catalog_sources.sh b/scripts/catalog/catalog_sources.sh index 6ee3a23..86e476f 100644 --- a/scripts/catalog/catalog_sources.sh +++ b/scripts/catalog/catalog_sources.sh @@ -17,8 +17,10 @@ # (lpFetchIndex is untouched) — a third-party catalog can never become a channel # for system updates. -# Its own file, next to the other live config (manager-owned control plane). -catalogSourcesFile() { echo "${configs_dir%/}/catalog/sources.json"; } +# Its own file in the manager's persistent state root ($docker_dir — beside the +# apps database), NOT under configs/ (every file there is treated as a sourced +# .config, so a JSON there would be executed as bash at startup). +catalogSourcesFile() { echo "${docker_dir%/}/catalog/sources.json"; } # The extra (non-official) sources as a JSON array; [] when none/absent/invalid. catalogExtraSourcesJson() {