From 32c33e27be37f1b0a19c1cd814069b945128a56f Mon Sep 17 00:00:00 2001 From: librelad Date: Sun, 24 May 2026 22:39:43 +0100 Subject: [PATCH] fix(install): silence find-permission noise on early best-effort scans MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Early in an install the docker-type config isn't loaded yet, so runFileOp falls back to the manager, which can't list the container-owned (751) /docker/containers/ dir. Two best-effort scans then leaked "find: '/docker/containers/': Permission denied" to the install output (x3 per run): scan_files.sh's app_configs scan and the application config reconcile. No app configs exist that early on a fresh install, so the empty result is correct — just suppress the find stderr (the -print0 output still flows). Cosmetic only; doesn't change what's enumerated once the config is loaded. Co-Authored-By: Claude Opus 4.7 Signed-off-by: librelad --- .../config/application/application_missing_variables.sh | 5 ++++- scripts/source/loading/scan_files.sh | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/config/application/application_missing_variables.sh b/scripts/config/application/application_missing_variables.sh index e5598ac..e3d3ba1 100755 --- a/scripts/config/application/application_missing_variables.sh +++ b/scripts/config/application/application_missing_variables.sh @@ -9,7 +9,10 @@ checkApplicationsConfigFilesMissingVariables() app=$(basename "$live" .config) remote="$install_containers_dir$app/$app.config" reconcileConfigFile "$live" "$remote" - done < <(runFileOp find "$containers_dir" -maxdepth 2 -type f -name '*.config' ! -name '*.bak') + # 2>/dev/null: before the docker-type config loads (early install) runFileOp + # falls back to the manager, which can't list the container-owned containers/ + # dir — harmless "Permission denied" on a best-effort reconcile (no apps yet). + done < <(runFileOp find "$containers_dir" -maxdepth 2 -type f -name '*.config' ! -name '*.bak' 2>/dev/null) isSuccessful "Application config reconciliation completed." } diff --git a/scripts/source/loading/scan_files.sh b/scripts/source/loading/scan_files.sh index 9643c24..cc77c9a 100755 --- a/scripts/source/loading/scan_files.sh +++ b/scripts/source/loading/scan_files.sh @@ -61,7 +61,12 @@ sourceScanFiles() source "$file" # echo "$load_type FILE $file" fi - done < <($scan_op find "$folder_dir" -maxdepth 3 -type d \( -name 'resources' \) -prune -o -type f -name "$file_pattern" -print0) + # 2>/dev/null: early in an install the docker-type config isn't loaded + # yet, so runFileOp falls back to the manager, which can't list the + # container-owned containers/ dir — a harmless "Permission denied" on a + # best-effort scan (no app configs exist yet). Suppress that noise; the + # -print0 output still flows. + done < <($scan_op find "$folder_dir" -maxdepth 3 -type d \( -name 'resources' \) -prune -o -type f -name "$file_pattern" -print0 2>/dev/null) fi # Load the categories from the file into an array