[openwrt/openwrt] cli: extend remove call to allow passing values directly

LEDE Commits lede-commits at lists.infradead.org
Fri Apr 11 02:10:19 PDT 2025


nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/37c80e61ee6f8fb513639a89b42dcdaaadb3d156

commit 37c80e61ee6f8fb513639a89b42dcdaaadb3d156
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Thu Apr 3 11:51:41 2025 +0200

    cli: extend remove call to allow passing values directly
    
    This simplifies script or API usage of this command to remove values directly
    without having to calculate the index
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 package/utils/cli/files/usr/share/ucode/cli/object-editor.uc | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/package/utils/cli/files/usr/share/ucode/cli/object-editor.uc b/package/utils/cli/files/usr/share/ucode/cli/object-editor.uc
index 0a44754064..1f36ee9d07 100644
--- a/package/utils/cli/files/usr/share/ucode/cli/object-editor.uc
+++ b/package/utils/cli/files/usr/share/ucode/cli/object-editor.uc
@@ -135,8 +135,14 @@ export function remove_call(ctx, argv, named)
 		if (!data)
 			continue;
 
-		for (let idx in val)
+		for (let idx in val) {
+			if (idx != "" + +idx) {
+				let cur_idx = index(data, idx);
+				if (cur_idx >= 0)
+					idx = cur_idx + 1;
+			}
 			data[+idx - 1] = null;
+		}
 
 		cur_obj[name] = filter(data, (v) => v != null);
 		if (cur.attribute_allow_empty && !length(cur_obj[name]))




More information about the lede-commits mailing list