tools: fix null display in fbq-add-source.sh for sources without name/config

Sources added manually without a name or config block showed "null"
for name and readOnly. Use yq // operator to fall back to sensible
defaults: "(unnamed)" for missing name, false for missing booleans.

https://claude.ai/code/session_014CCYqVwW6d6f5dw1qRokYt
This commit is contained in:
Claude
2026-06-08 05:32:10 +00:00
parent 99e8671110
commit 5af33a9ebb
+6 -6
View File
@@ -220,7 +220,7 @@ cmd_remove() {
local i=1
for p in "${paths[@]}"; do
local name
name=$(yq e ".server.sources[] | select(.path == \"$p\") | .name" "$config" 2>/dev/null || echo "")
name=$(yq e ".server.sources[] | select(.path == \"$p\") | .name // \"(unnamed)\"" "$config" 2>/dev/null || echo "(unnamed)")
printf " %2d) %-20s %s\n" "$i" "${name:-?}" "$p"
(( i++ ))
done
@@ -256,12 +256,12 @@ cmd_show() {
local count=0
while IFS= read -r p; do
local name enabled readonly
name=$(yq e ".server.sources[] | select(.path == \"$p\") | .name" "$config" 2>/dev/null || echo "?")
enabled=$(yq e ".server.sources[] | select(.path == \"$p\") | .config.defaultEnabled" "$config" 2>/dev/null || echo "false")
readonly=$(yq e ".server.sources[] | select(.path == \"$p\") | .config.readOnly" "$config" 2>/dev/null || echo "false")
local name enabled ro
name=$(yq e ".server.sources[] | select(.path == \"$p\") | .name // \"(unnamed)\"" "$config" 2>/dev/null || echo "?")
enabled=$(yq e ".server.sources[] | select(.path == \"$p\") | .config.defaultEnabled // false" "$config" 2>/dev/null || echo "false")
ro=$(yq e ".server.sources[] | select(.path == \"$p\") | .config.readOnly // false" "$config" 2>/dev/null || echo "false")
printf " %-20s %-35s defaultEnabled=%-5s readOnly=%s\n" \
"${name}" "${p}" "${enabled}" "${readonly}"
"${name}" "${p}" "${enabled}" "${ro}"
(( count++ ))
done < <(list_sources "$config")