From: Lennart Poettering Date: Mon, 3 Dec 2018 19:40:02 +0000 (+0100) Subject: output-mode: add generic helper to pick right JsonFormatFlags for given OutputMode X-Git-Tag: v240~143^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e964bb8e472174fe680a478167ed20a8f2515a4;p=thirdparty%2Fsystemd.git output-mode: add generic helper to pick right JsonFormatFlags for given OutputMode --- diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c index 41d484fa16f..76457bb475b 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 9463d185f0e..107b345538c 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 3cbaeadde68..a3be8d668eb 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_;