]> git.puffer.fish Git - matthieu/frr.git/commitdiff
lib: add helpers to print json keys
authorLouis Scalbert <louis.scalbert@6wind.com>
Mon, 27 May 2024 08:04:14 +0000 (10:04 +0200)
committerLouis Scalbert <louis.scalbert@6wind.com>
Fri, 7 Jun 2024 08:13:26 +0000 (10:13 +0200)
Add helpers to print json keys in order to prepare the next commits.

Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
lib/vty.c
lib/vty.h

index 628c694e95bc43d6e89b1329fb657e10ac5c5c53..0dcd118a97a01cc8fdea6acf37e9efc9aad69b64 100644 (file)
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -390,6 +390,21 @@ int vty_json_no_pretty(struct vty *vty, struct json_object *json)
        return vty_json_helper(vty, json, JSON_C_TO_STRING_NOSLASHESCAPE);
 }
 
+
+void vty_json_key(struct vty *vty, const char *key, bool *first_key)
+{
+       vty_out(vty, "%s\"%s\":", *first_key ? "{" : ",", key);
+       *first_key = false;
+}
+
+void vty_json_close(struct vty *vty, bool first_key)
+{
+       if (first_key)
+               /* JSON was not opened */
+               vty_out(vty, "{");
+       vty_out(vty, "}\n");
+}
+
 void vty_json_empty(struct vty *vty, struct json_object *json)
 {
        json_object *jsonobj = json;
index a9570ef048d5caed2c926a6017046c8c0ab4fa92..c336a816cc1fabd162cdcedd5795f3b11ca15a42 100644 (file)
--- a/lib/vty.h
+++ b/lib/vty.h
@@ -378,6 +378,8 @@ extern bool vty_set_include(struct vty *vty, const char *regexp);
  */
 extern int vty_json(struct vty *vty, struct json_object *json);
 extern int vty_json_no_pretty(struct vty *vty, struct json_object *json);
+void vty_json_key(struct vty *vty, const char *key, bool *first_key);
+void vty_json_close(struct vty *vty, bool first_key);
 extern void vty_json_empty(struct vty *vty, struct json_object *json);
 /* post fd to be passed to the vtysh client
  * fd is owned by the VTY code after this and will be closed when done