Fix yq-incompatible subscription rename (#321)

mikefarah/yq does not support jq-style if/then/else expressions, so every subscription rename failed during expression parsing. Use with(select(...)) for the conditional active-source update and cover active and non-active renames with a real yq regression check.
This commit is contained in:
Arvin
2026-09-24 15:33:21 +08:00
parent 348a36f175
commit 18e6fb6fb3
2 changed files with 139 additions and 1 deletions
+1 -1
View File
@@ -2611,7 +2611,7 @@ rename_subscription() {
OLD_NAME="$old_name" NEW_NAME="$new_name" "$(yq_bin)" eval -i '
.sources[env(NEW_NAME)] = .sources[env(OLD_NAME)] |
del(.sources[env(OLD_NAME)]) |
.active = (if .active == env(OLD_NAME) then env(NEW_NAME) else .active end)
with(select(.active == env(OLD_NAME)); .active = env(NEW_NAME))
' "$file"
old_prefix="$(health_key_prefix "$old_name")"