From e190a22c6aec7a421cd1f35985fe8acf9a68c08b Mon Sep 17 00:00:00 2001 From: Jasper Scholte Date: Thu, 21 Dec 2017 10:01:42 +0100 Subject: [PATCH] ser2net: added support for config file. Signed-off-by: Jasper Scholte --- net/ser2net/Makefile | 4 +++ net/ser2net/files/etc/config/ser2net | 8 +++++ net/ser2net/files/etc/init.d/ser2net | 46 ++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+) create mode 100644 net/ser2net/files/etc/config/ser2net create mode 100644 net/ser2net/files/etc/init.d/ser2net diff --git a/net/ser2net/Makefile b/net/ser2net/Makefile index 3b7c67775..9e61bef57 100644 --- a/net/ser2net/Makefile +++ b/net/ser2net/Makefile @@ -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 index 000000000..227f0521c --- /dev/null +++ b/net/ser2net/files/etc/config/ser2net @@ -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 index 000000000..e5ef383ee --- /dev/null +++ b/net/ser2net/files/etc/init.d/ser2net @@ -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 +}