diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2013-12-10 21:30:15 +0400 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2013-12-10 21:30:15 +0400 |
commit | e58fa88e1f69557203ddc616bed95b9817c4f7d0 (patch) | |
tree | cd9a0b83dd18686761731382257285b87ad64afa | |
parent | 318d682d29a8974aa53bd7dc523f1514eb0eddb9 (diff) |
jshn: add ability to pass default values to json_get_var and json_get_vars
-rw-r--r-- | sh/jshn.sh | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -231,13 +231,17 @@ json_get_var() { _json_get_var __cur JSON_CUR local __var="${JSON_PREFIX}${__cur}_${2//[^a-zA-Z0-9_]/_}" - eval "export -- \"$__dest=\${$__var}\"; [ -n \"\${$__var+x}\" ]" + eval "export -- \"$__dest=\${$__var:-$3}\"; [ -n \"\${$__var+x}\${3+x}\" ]" } json_get_vars() { while [ "$#" -gt 0 ]; do local _var="$1"; shift - json_get_var "$_var" "$_var" + if [ "$_var" != "${_var#*:}" ]; then + json_get_var "${_var%%:*}" "${_var%%:*}" "${_var#*:}" + else + json_get_var "$_var" "$_var" + fi done } |