From 9e964bb8e472174fe680a478167ed20a8f2515a4 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 3 Dec 2018 20:40:02 +0100 Subject: [PATCH] output-mode: add generic helper to pick right JsonFormatFlags for given OutputMode --- src/shared/logs-show.c | 5 +---- src/shared/output-mode.c | 18 ++++++++++++++++++ src/shared/output-mode.h | 3 +++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 41d484fa16..76457bb475 100644 --- a/src/shared/logs-show.c +++ b/src/shared/logs-show.c @@ -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); diff --git a/src/shared/output-mode.c b/src/shared/output-mode.c index 9463d185f0..107b345538 100644 --- a/src/shared/output-mode.c +++ b/src/shared/output-mode.c @@ -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", diff --git a/src/shared/output-mode.h b/src/shared/output-mode.h index 3cbaeadde6..a3be8d668e 100644 --- a/src/shared/output-mode.h +++ b/src/shared/output-mode.h @@ -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_;