From b7e61837e7269a8eafca280f904ab4a4e1425840 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Tue, 29 Oct 2013 15:11:42 +0100 Subject: [PATCH] jshn: allow json_get_keys/values to refer to the currently selected array/table if no argument is given Signed-off-by: Felix Fietkau --- sh/jshn.sh | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/sh/jshn.sh b/sh/jshn.sh index e919910..a3f6d11 100644 --- a/sh/jshn.sh +++ b/sh/jshn.sh @@ -218,25 +218,35 @@ json_get_keys() { local __dest="$1" local _tbl_cur - json_get_var _tbl_cur "$2" + if [ -n "$2" ]; then + json_get_var _tbl_cur "$2" + else + _json_get_var _tbl_cur JSON_CUR + fi local __var="${JSON_PREFIX}KEYS_${_tbl_cur}" eval "export -- \"$__dest=\${$__var}\"; [ -n \"\${$__var+x}\" ]" } json_get_values() { local _v_dest="$1" - local _v_keys _v_val + local _v_keys _v_val _select= unset "$_v_dest" - json_get_keys _v_keys "$2" - json_select "$2" + [ -n "$2" ] && { + json_select "$2" + _select=1 + } + + json_get_keys _v_keys set -- $_v_keys while [ "$#" -gt 0 ]; do json_get_var _v_val "$1" __jshn_raw_append "$_v_dest" "$_v_val" shift done - json_select .. + [ -n "$_select" ] && json_select .. + + return 0 } json_get_var() { -- 2.11.0