jshn: allow json_get_keys/values to refer to the currently selected array/table if no argument is given

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
This commit is contained in:
Felix Fietkau 2013-10-29 15:11:42 +01:00
parent b5aa522f5d
commit b7e61837e7

View file

@ -218,25 +218,35 @@ json_get_keys() {
local __dest="$1" local __dest="$1"
local _tbl_cur 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}" local __var="${JSON_PREFIX}KEYS_${_tbl_cur}"
eval "export -- \"$__dest=\${$__var}\"; [ -n \"\${$__var+x}\" ]" eval "export -- \"$__dest=\${$__var}\"; [ -n \"\${$__var+x}\" ]"
} }
json_get_values() { json_get_values() {
local _v_dest="$1" local _v_dest="$1"
local _v_keys _v_val local _v_keys _v_val _select=
unset "$_v_dest" unset "$_v_dest"
json_get_keys _v_keys "$2" [ -n "$2" ] && {
json_select "$2" json_select "$2"
_select=1
}
json_get_keys _v_keys
set -- $_v_keys set -- $_v_keys
while [ "$#" -gt 0 ]; do while [ "$#" -gt 0 ]; do
json_get_var _v_val "$1" json_get_var _v_val "$1"
__jshn_raw_append "$_v_dest" "$_v_val" __jshn_raw_append "$_v_dest" "$_v_val"
shift shift
done done
json_select .. [ -n "$_select" ] && json_select ..
return 0
} }
json_get_var() { json_get_var() {