From 6cba28a335284de9dd68d84b4dd660f6e744eba5 Mon Sep 17 00:00:00 2001 From: Peter Rajnoha Date: Thu, 4 Aug 2022 16:42:54 +0200 Subject: [PATCH] config: recognize 'json_std' for report/output_format config setting --- lib/config/config_settings.h | 9 ++++++++- tools/reporter.c | 8 ++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/config/config_settings.h b/lib/config/config_settings.h index d2811df2b..b172c7c5f 100644 --- a/lib/config/config_settings.h +++ b/lib/config/config_settings.h @@ -1806,7 +1806,14 @@ cfg(report_output_format_CFG, "output_format", report_CFG_SECTION, CFG_PROFILABL " one report per command, each report is prefixed with report's\n" " name for identification.\n" " json\n" - " JSON format.\n") + " JSON format.\n" + " json_std\n" + " JSON format that is more compliant with JSON standard.\n" + " Compared to original \"json\" format:\n" + " - it does not use double quotes around numeric values,\n" + " - it uses 'null' for undefined numeric values,\n" + " - it prints string list as proper JSON array of strings instead of a single string." + "\n") cfg(report_compact_output_CFG, "compact_output", report_CFG_SECTION, CFG_PROFILABLE | CFG_DEFAULT_COMMENTED, CFG_TYPE_BOOL, DEFAULT_REP_COMPACT_OUTPUT, vsn(2, 2, 115), NULL, 0, NULL, "Do not print empty values for all report fields.\n" diff --git a/tools/reporter.c b/tools/reporter.c index eafba4fec..b31f1891e 100644 --- a/tools/reporter.c +++ b/tools/reporter.c @@ -1455,6 +1455,7 @@ int devtypes(struct cmd_context *cmd, int argc, char **argv) #define REPORT_FORMAT_NAME_BASIC "basic" #define REPORT_FORMAT_NAME_JSON "json" +#define REPORT_FORMAT_NAME_JSON_STD "json_std" int report_format_init(struct cmd_context *cmd) { @@ -1475,11 +1476,14 @@ int report_format_init(struct cmd_context *cmd) : DM_REPORT_GROUP_SINGLE; } else if (!strcmp(format_str, REPORT_FORMAT_NAME_JSON)) { args.report_group_type = DM_REPORT_GROUP_JSON; + } else if (!strcmp(format_str, REPORT_FORMAT_NAME_JSON_STD)) { + args.report_group_type = DM_REPORT_GROUP_JSON_STD; } else { log_error("%s: unknown report format.", format_str); - log_error("Supported report formats: %s, %s.", + log_error("Supported report formats: %s, %s, %s.", REPORT_FORMAT_NAME_BASIC, - REPORT_FORMAT_NAME_JSON); + REPORT_FORMAT_NAME_JSON, + REPORT_FORMAT_NAME_JSON_STD); return 0; }