p910nd: Fix init script and make use use append_bool() and appand_string() functions
[openwrt/svn-archive/archive.git] / net / p910nd / files / p910nd.init
index bc21b20a9db864ba2dff50d84fce21c1591deab2..1850c667ec391f543550bc2955e4bbbbdc806145 100644 (file)
@@ -2,21 +2,33 @@
 # Copyright (C) 2007 OpenWrt.org
 START=50
 
-BIN=p910nd
+append_bool() {
+       local section="$1"
+       local option="$2"
+       local value="$3"
+       local _val
+       config_get_bool _val "$section" "$option" '0'
+       [ "$_val" -gt 0 ] && append args "$3"
+}
 
-start_service() {
+append_string() {
        local section="$1"
-       config_get      port          "$section" port
-       config_get      device        "$section" device
-       config_get_bool bidirectional "$section" bidirectional
+       local option="$2"
+       local value="$3"
+       local _val
+       config_get _val "$section" "$option"
+       [ -n "$_val" ] && append args "$3$_val"
+}
 
-       options=""
-       [ $bidirectional -eq 1 ] && {
-               options="$options -b"
-       }
-       options="$options -f $device $port"
+start_service() {
+       local section="$1"
+       args=""
 
-       $BIN $options
+       append_bool "$section" bidirectional "-b"
+       append_string "$section" device "-f "
+       append_string "$section" port ""
+       config_get_bool "enabled" "$section" "enabled" '1'
+       [ "$enabled" -gt 0 ] && /usr/sbin/p910nd $args
 }
 
 stop_service() {