From: Stephen Hemminger Date: Thu, 8 Feb 2018 16:26:22 +0000 (-0800) Subject: json: make pretty printing optional X-Git-Tag: v4.17.0~84^2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a233caa0aaee;p=thirdparty%2Fiproute2.git json: make pretty printing optional Since JSON is intended for programmatic consumption, it makes sense for the default output format to be concise as possible. For programmer and other uses, it is helpful to keep the pretty whitespace format; therefore enable it with -p flag. Signed-off-by: Stephen Hemminger Signed-off-by: David Ahern --- diff --git a/include/json_print.h b/include/json_print.h index 2ca7830ad..45a817ce6 100644 --- a/include/json_print.h +++ b/include/json_print.h @@ -15,6 +15,8 @@ #include "json_writer.h" #include "color.h" +extern int show_pretty; + json_writer_t *get_json_writer(void); /* diff --git a/ip/ip.c b/ip/ip.c index b15e6b66b..a66112928 100644 --- a/ip/ip.c +++ b/ip/ip.c @@ -31,6 +31,7 @@ int show_stats; int show_details; int oneline; int brief; +int show_pretty; int json; int timestamp; const char *_SL_; @@ -259,6 +260,8 @@ int main(int argc, char **argv) ++brief; } else if (matches(opt, "-json") == 0) { ++json; + } else if (matches(opt, "-pretty") == 0) { + ++show_pretty; } else if (matches(opt, "-rcvbuf") == 0) { unsigned int size; diff --git a/lib/json_print.c b/lib/json_print.c index 6518ba98f..e3da1bdfd 100644 --- a/lib/json_print.c +++ b/lib/json_print.c @@ -28,7 +28,8 @@ void new_json_obj(int json) perror("json object"); exit(1); } - jsonw_pretty(_jw, true); + if (show_pretty) + jsonw_pretty(_jw, true); jsonw_start_array(_jw); } } diff --git a/tc/tc.c b/tc/tc.c index 63e64fece..aba5c1017 100644 --- a/tc/tc.c +++ b/tc/tc.c @@ -42,6 +42,7 @@ int use_iec; int force; bool use_names; int json; +int pretty; static char *conf_file; @@ -484,6 +485,8 @@ int main(int argc, char **argv) ++timestamp_short; } else if (matches(argv[1], "-json") == 0) { ++json; + } else if (matches(argv[1], "-pretty") == 0) { + ++pretty; } else { fprintf(stderr, "Option \"%s\" is unknown, try \"tc -help\".\n", argv[1]); return -1;