ser2net: added support for config file.
[feed/packages.git] / net / ser2net / files / etc / init.d / ser2net
diff --git a/net/ser2net/files/etc/init.d/ser2net b/net/ser2net/files/etc/init.d/ser2net
new file mode 100644 (file)
index 0000000..e5ef383
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2017 OpenWrt.org
+
+START=75
+STOP=10
+CONFIGFILE="/tmp/ser2net.conf"
+
+USE_PROCD=1
+PROG=/usr/sbin/ser2net
+
+start_service() {
+       config_load 'ser2net'
+
+       local enabled
+       config_get_bool enabled config 'enabled' '0'
+       [ "$enabled" -gt 0 ] || return 1
+
+       ser2net_create_config config || return 1
+       procd_open_instance
+       procd_set_param command "$PROG" -n -c "$CONFIGFILE"
+       procd_close_instance
+}
+
+ser2net_create_config() {
+       local cfg=$1
+       local port
+       local device
+       
+       config_get port $cfg port
+       config_get device $cfg device
+       [ -z "$port" -o -t "$device" ] && return 1
+
+       local protocol
+       local timeout
+       local options
+
+       config_get protocol $cfg protocol
+       config_get timeout $cfg timeout
+       config_get options $cfg options
+
+       if [ -z "$options" ]; then
+               echo "$port":"$protocol":"$timeout":"$device" >> "$CONFIGFILE
+       else
+               echo "$port":"$protocol":"$timeout":"$device":"$options" >> "$CONFIGFILE"
+       fi
+}