From: Lennart Poettering Date: Mon, 3 Dec 2018 19:46:33 +0000 (+0100) Subject: loginctl: optionally output table in json X-Git-Tag: v240~143^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e3483674ec0c9507f2439a070bebaf1cead62e5d;p=thirdparty%2Fsystemd.git loginctl: optionally output table in json This works now: $ loginctl list-session --output=json-pretty --- diff --git a/src/login/loginctl.c b/src/login/loginctl.c index fb5240d7d36..d0987fcd1a5 100644 --- a/src/login/loginctl.c +++ b/src/login/loginctl.c @@ -101,7 +101,10 @@ static int show_table(Table *table, const char *word) { table_set_header(table, arg_legend); - r = table_print(table, NULL); + if (OUTPUT_MODE_IS_JSON(arg_output)) + r = table_print_json(table, NULL, output_mode_to_json_format_flags(arg_output) | JSON_FORMAT_COLOR_AUTO); + else + r = table_print(table, NULL); if (r < 0) return log_error_errno(r, "Failed to show table: %m"); } @@ -1434,6 +1437,10 @@ static int parse_argv(int argc, char *argv[]) { if (arg_output < 0) return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unknown output '%s'.", optarg); + + if (OUTPUT_MODE_IS_JSON(arg_output)) + arg_legend = false; + break; case ARG_NO_PAGER: