diff options
author | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-11-25 08:34:47 +0000 |
---|---|---|
committer | blogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-11-25 08:34:47 +0000 |
commit | 0eed0af1d6d697a9fd82271544cfb3e38062861f (patch) | |
tree | ac2e447b5ba9a711c913ab31623f1a1e4a324a33 | |
parent | 7529b8b679ae1dd8b6b1e7c97e3890c3d0bc6505 (diff) |
procd: update procd.sh to make use of the new validate_data tool
Signed-off-by: John Crispin <blogic@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@38908 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | package/system/procd/files/procd.sh | 60 |
1 files changed, 8 insertions, 52 deletions
diff --git a/package/system/procd/files/procd.sh b/package/system/procd/files/procd.sh index d058c4ff5e..ddb6d95e68 100644 --- a/package/system/procd/files/procd.sh +++ b/package/system/procd/files/procd.sh @@ -217,59 +217,15 @@ _procd_kill() { uci_validate_section() { - local error=0 - - [ "$4" = "" ] && return 1 - [ "$3" = "" ] && { - json_add_object - json_add_string "package" "$1" - json_add_string "type" "$2" - json_add_object "data" - - shift; shift; shift - - while [ -n "$1" ]; do - local tmp=${1#*:} - json_add_string "${1%%:*}" "${tmp%%:*}" - shift - done - - json_close_object - json_close_object - return 0 - } - - local section="${3}" - config_load "${1}" + local package="$1" + local type="$2" + local name="$3" + local error shift; shift; shift - - while [ -n "$1" ]; do - local name=${1%%:*} - local tmp=${1#*:} - local type=${tmp%%:*} - local default="" - - [ "$tmp" = "$type" ] || default=${tmp#*:} - - shift - config_get "${name}" "${section}" "${name}" - eval val=\$$name - - [ "$type" = "bool" ] && { - case "$val" in - 1|on|true|enabled) val=1;; - 0|off|false|disabled) val=0;; - *) val="";; - esac - } - [ -z "$val" ] && val=${default} - eval $name=\"$val\" - [ -z "$val" ] || { - /sbin/validate_data "${type}" "${val}" - [ $? -eq 0 ] || error="$((error + 1))" - } - done - + local result=`/sbin/validate_data "$package" "$type" "$name" $@ 2> /dev/null` + error=$? + eval "$result" + [ "$error" = "0" ] || `/sbin/validate_data "$package" "$type" "$name" $@ 1> /dev/null` return $error } |