]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
output-mode: add generic helper to pick right JsonFormatFlags for given OutputMode
authorLennart Poettering <lennart@poettering.net>
Mon, 3 Dec 2018 19:40:02 +0000 (20:40 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 3 Dec 2018 21:42:38 +0000 (22:42 +0100)
src/shared/logs-show.c
src/shared/output-mode.c
src/shared/output-mode.h

index 41d484fa16f0e40bef0cd130658d9a263c202664..76457bb475b5d9e49bb3206c32b7c07ce3ded0ee 100644 (file)
@@ -946,10 +946,7 @@ static int output_json(
         }
 
         json_variant_dump(object,
-                          (mode == OUTPUT_JSON_SSE    ? JSON_FORMAT_SSE :
-                           mode == OUTPUT_JSON_SEQ    ? JSON_FORMAT_SEQ :
-                           mode == OUTPUT_JSON_PRETTY ? JSON_FORMAT_PRETTY :
-                                                        JSON_FORMAT_NEWLINE) |
+                          output_mode_to_json_format_flags(mode) |
                           (FLAGS_SET(flags, OUTPUT_COLOR) ? JSON_FORMAT_COLOR : 0),
                           f, NULL);
 
index 9463d185f0efe25bc432b8e95c22354935493b36..107b345538cf7e230f63427f9eec9a7d4ad4239f 100644 (file)
@@ -3,6 +3,24 @@
 #include "output-mode.h"
 #include "string-table.h"
 
+JsonFormatFlags output_mode_to_json_format_flags(OutputMode m) {
+
+        switch (m) {
+
+        case OUTPUT_JSON_SSE:
+                return JSON_FORMAT_SSE;
+
+        case OUTPUT_JSON_SEQ:
+                return JSON_FORMAT_SEQ;
+
+        case OUTPUT_JSON_PRETTY:
+                return JSON_FORMAT_PRETTY;
+
+        default:
+                return JSON_FORMAT_NEWLINE;
+        }
+}
+
 static const char *const output_mode_table[_OUTPUT_MODE_MAX] = {
         [OUTPUT_SHORT] = "short",
         [OUTPUT_SHORT_FULL] = "short-full",
index 3cbaeadde6877bf198acbfb57c9fc3eabeb94efb..a3be8d668eb5333d276107131bd4f7476700ff3f 100644 (file)
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: LGPL-2.1+ */
 #pragma once
 
+#include "json.h"
 #include "macro.h"
 
 typedef enum OutputMode {
@@ -39,5 +40,7 @@ typedef enum OutputFlags {
         OUTPUT_NO_HOSTNAME    = 1 << 9,
 } OutputFlags;
 
+JsonFormatFlags output_mode_to_json_format_flags(OutputMode m);
+
 const char* output_mode_to_string(OutputMode m) _const_;
 OutputMode output_mode_from_string(const char *s) _pure_;