projects
/
project
/
libubox.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
652162c
)
sh/jshn.sh: replace "tr" calls with inline substitution, signalize success with retur...
author
Jo-Philipp Wich
<jow@openwrt.org>
Tue, 29 May 2012 00:10:20 +0000
(
02:10
+0200)
committer
Felix Fietkau
<nbd@openwrt.org>
Tue, 29 May 2012 00:13:15 +0000
(
02:13
+0200)
sh/jshn.sh
patch
|
blob
|
history
diff --git
a/sh/jshn.sh
b/sh/jshn.sh
index
7f922c4
..
a15cb00
100644
(file)
--- a/
sh/jshn.sh
+++ b/
sh/jshn.sh
@@
-24,7
+24,7
@@
json_add_generic() {
var=$(( ${aseq:-0} + 1 ))
export -- "SEQ_$cur=$var"
else
var=$(( ${aseq:-0} + 1 ))
export -- "SEQ_$cur=$var"
else
- local name="$
(echo -n "$var" | tr -C '[a-zA-Z0-9_]' _)
"
+ local name="$
{var//[^a-zA-Z0-9_]/_}
"
[[ "$name" == "$var" ]] || export -- "NAME_${cur}_${name}=$var"
var="$name"
fi
[[ "$name" == "$var" ]] || export -- "NAME_${cur}_${name}=$var"
var="$name"
fi
@@
-94,14
+94,14
@@
json_dump() {
json_get_type() {
local dest="$1"
json_get_type() {
local dest="$1"
- local var="$2"
- eval "
export -- \"$dest=\${TYPE_${JSON_CUR}_
$var}\""
+ local var="
TYPE_${JSON_CUR}_
$2"
+ eval "
[ -n \"\${$var+x}\" ] && export -- \"$dest=\${
$var}\""
}
json_get_var() {
local dest="$1"
}
json_get_var() {
local dest="$1"
- local var="$
(echo -n "$2" | tr -C '[a-zA-Z0-9_]' _)
"
- eval "
export -- \"$dest=\${${JSON_CUR}_
$var}\""
+ local var="$
{JSON_CUR}_${2//[^a-zA-Z0-9_]/_}
"
+ eval "
[ -n \"\${$var+x}\" ] && export -- \"$dest=\${
$var}\""
}
json_get_vars() {
}
json_get_vars() {
@@
-117,11
+117,11
@@
json_select() {
[ -z "$1" ] && {
JSON_CUR="JSON_VAR"
[ -z "$1" ] && {
JSON_CUR="JSON_VAR"
- return
+ return
0
}
[[ "$1" == ".." ]] && {
eval "JSON_CUR=\"\${UP_$JSON_CUR}\""
}
[[ "$1" == ".." ]] && {
eval "JSON_CUR=\"\${UP_$JSON_CUR}\""
- return
;
+ return
0
}
json_get_type type "$target"
case "$type" in
}
json_get_type type "$target"
case "$type" in
@@
-130,6
+130,7
@@
json_select() {
;;
*)
echo "WARNING: Variable '$target' does not exist or is not an array/object"
;;
*)
echo "WARNING: Variable '$target' does not exist or is not an array/object"
+ return 1
;;
esac
}
;;
esac
}