[openwrt/openwrt] cli: add json data type

LEDE Commits lede-commits at lists.infradead.org
Thu Jul 10 01:48:32 PDT 2025


nbd pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/14d5a51822a1f6c385fc51f65b1d8019b7b6ac0d

commit 14d5a51822a1f6c385fc51f65b1d8019b7b6ac0d
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Thu Jul 10 10:46:53 2025 +0200

    cli: add json data type
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 package/utils/cli/files/usr/share/ucode/cli/types.uc | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/package/utils/cli/files/usr/share/ucode/cli/types.uc b/package/utils/cli/files/usr/share/ucode/cli/types.uc
index 10b004d1ad..62f9683b45 100644
--- a/package/utils/cli/files/usr/share/ucode/cli/types.uc
+++ b/package/utils/cli/files/usr/share/ucode/cli/types.uc
@@ -58,6 +58,18 @@ const types = {
 			return;
 		}
 	},
+	json: {
+		parse: function(ctx, name, val) {
+			try {
+				val = json(val);
+			} catch (e) {
+				return ctx.invalid_argument('Invalid JSON data');
+			}
+			if (this.data_type != null && type(val) != this.data_type)
+				ctx.invalid_argument(`Invalid data type: %s, expected: %s`, type(val), this.data_type);
+			return val;
+		}
+	},
 	enum: {
 		parse: function(ctx, name, val) {
 			if (this.no_validate)




More information about the lede-commits mailing list