Просмотр исходного кода

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 <[email protected]>
Felix Fietkau 9 месяцев назад
Родитель
Сommit
37c80e61ee
1 измененных файлов с 7 добавлено и 1 удалено
  1. 7 1
      package/utils/cli/files/usr/share/ucode/cli/object-editor.uc

+ 7 - 1
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]))