From 6fc29d1c429240a9afb71c22aa161b066502f3ed Mon Sep 17 00:00:00 2001 From: Philip Prindeville Date: Fri, 14 Apr 2023 12:37:05 -0600 Subject: [PATCH] jshn.sh: Add pretty-printing to json_dump If a JSON file might be read by a human, say for debugging, it could be useful to pretty-print it. We do this in places by calling "json_dump -i" but it shouldn't be necessary to know the arguments to "jshn" (and indeed, that's not portable if we retool the underlying implementation). Conversely output that's ephemeral doesn't need to be pretty (say being piped as input to another command). Signed-off-by: Philip Prindeville --- sh/jshn.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sh/jshn.sh b/sh/jshn.sh index c973692..1d30557 100644 --- a/sh/jshn.sh +++ b/sh/jshn.sh @@ -199,6 +199,16 @@ json_add_fields() { # functions read access to json variables +json_compact() { + JSON_NONEWLINE=1 + JSON_INDENT= +} + +json_pretty() { + JSON_NONEWLINE= + JSON_INDENT=1 +} + json_load() { eval "`jshn -r "$1"`" } @@ -208,7 +218,7 @@ json_load_file() { } json_dump() { - jshn "$@" ${JSON_PREFIX:+-p "$JSON_PREFIX"} -w + jshn "$@" ${JSON_PREFIX:+-p "$JSON_PREFIX"} ${JSON_NONEWLINE:+-n} ${JSON_INDENT:+-i} -w } json_get_type() {