ser2net: added support for config file. 5302/head
authorJasper Scholte <NightNL@outlook.com>
Thu, 21 Dec 2017 09:01:42 +0000 (10:01 +0100)
committerJasper Scholte <NightNL@outlook.com>
Thu, 21 Dec 2017 09:01:42 +0000 (10:01 +0100)
Signed-off-by: Jasper Scholte <NightNL@outlook.com>
net/ser2net/Makefile
net/ser2net/files/etc/config/ser2net [new file with mode: 0644]
net/ser2net/files/etc/init.d/ser2net [new file with mode: 0644]

index 3b7c67775605d03ed3213ef8771ede81f46f0120..9e61bef57f921ced4e74c70ba1a21016cc0ab9d3 100644 (file)
@@ -46,6 +46,10 @@ define Package/ser2net/install
        $(CP) $(PKG_INSTALL_DIR)/usr/sbin/ser2net $(1)/usr/sbin/
        $(INSTALL_DIR) $(1)/etc
        $(INSTALL_CONF) $(PKG_BUILD_DIR)/ser2net.conf $(1)/etc/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/etc/config/ser2net $(1)/etc/config/ser2net
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/etc/init.d/ser2net $(1)/etc/init.d/ser2net
 endef
 
 $(eval $(call BuildPackage,ser2net))
diff --git a/net/ser2net/files/etc/config/ser2net b/net/ser2net/files/etc/config/ser2net
new file mode 100644 (file)
index 0000000..227f052
--- /dev/null
@@ -0,0 +1,8 @@
+config 'proxy'
+       option 'enabled' '0'
+       option 'port' '8000'
+       option 'protocol' 'raw'
+       option 'timeout' '30'
+       option 'device' '/dev/ttyUSB0'
+       option 'options' '9600 1STOPBIT 8DATABITS'
+
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
+}