]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
machinectl: optionally output table in JSON
authorLennart Poettering <lennart@poettering.net>
Mon, 3 Dec 2018 19:58:32 +0000 (20:58 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 3 Dec 2018 21:42:38 +0000 (22:42 +0100)
src/machine/machinectl.c

index 5023acb5e233dd17e83c85ca7752a83cdf602f4f..b7a604a55c4da8dab928dfecacabdcd22ec067ce 100644 (file)
@@ -259,7 +259,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");
         }
@@ -2921,6 +2924,9 @@ 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: