fix(validate): only judge configs/ files that are actually sourced
validateSystemConfiguration ran `bash -n` over every file two levels deep under configs/, so a data file in a directory with no .category marker was reported as "does not parse as shell" — a configuration problem about a file nothing executes, pointing whoever read it at the wrong thing. Apply the same rule the loader uses: a file in a SUBDIRECTORY is judged only when that directory carries .category. Files directly in configs/ are checked as before. No behaviour change for any real config — every category (webui, general, security, backup, network) carries the marker. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
b0a00649f7
commit
1ed42c7645
@ -299,6 +299,16 @@ validateSystemConfiguration()
|
|||||||
local f
|
local f
|
||||||
while IFS= read -r f; do
|
while IFS= read -r f; do
|
||||||
[[ -f "$f" ]] || continue
|
[[ -f "$f" ]] || continue
|
||||||
|
# Only judge what actually gets sourced. sourceScanFiles sources a file in
|
||||||
|
# a SUBDIRECTORY only when that directory carries .category, so an unmarked
|
||||||
|
# directory holds ordinary data — and "does not parse as shell" is a
|
||||||
|
# meaningless complaint about a file nothing executes. Reporting it as a
|
||||||
|
# config problem sends someone fixing the wrong thing. Depth-1 files
|
||||||
|
# (directly in configs/) are checked as before, matching the loader.
|
||||||
|
local parent_dir="${f%/*}"
|
||||||
|
if [[ "$parent_dir" != "${configs_dir%/}" && ! -f "$parent_dir/.category" ]]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
bash -n "$f" 2>/dev/null || _lpvFail "$(basename "$f") does not parse as shell."
|
bash -n "$f" 2>/dev/null || _lpvFail "$(basename "$f") does not parse as shell."
|
||||||
local dup
|
local dup
|
||||||
dup=$(grep -oE '^CFG_[A-Z0-9_]+=' "$f" | sort | uniq -d | tr -d '=')
|
dup=$(grep -oE '^CFG_[A-Z0-9_]+=' "$f" | sort | uniq -d | tr -d '=')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user