Merge pull request #4962 from diizzyy/patch-96
[feed/packages.git] / net / knxd / files / knxd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2016 OpenWrt.org
3
4 START=98
5 STOP=20
6 PROG=/usr/bin/knxd
7 USE_PROCD=1
8
9 append_bool() {
10 local section="$1"
11 local option="$2"
12 local value="$3"
13 local _loctmp
14 local default="$4"
15 config_get_bool _loctmp "$section" "$option"
16 [ -z "$_loctmp" ] && _loctmp="$default"
17 [ "$_loctmp" -gt 0 ] && append params "--$value"
18 }
19
20 append_parm() {
21 local section="$1"
22 local option="$2"
23 local switch="$3"
24 local _loctmp
25 local default="$4"
26 config_get _loctmp "$section" "$option"
27 [ -z "$_loctmp" ] && _loctmp="$default"
28 [ -z "$_loctmp" ] && return 0
29 append params "--$switch=$_loctmp"
30 }
31
32 start_service() {
33 local options url
34 config_load knxd
35 append_parm args eibaddr "eibaddr" "0.0.1"
36 append_parm args client_addrs "client-addrs" "0.0.2:10"
37 append_parm args layer2 "layer2"
38 append_bool args GroupCache "GroupCache" 0
39 append_parm args daemon "daemon" "/var/log/knxd.log"
40 append_parm args error "error" # "5"
41 append_parm args listen_tcp "listen-tcp" "6720"
42 append_parm args Interface "Interface" # "eth0"
43 append_parm args send_delay "send-delay" # "50"
44 append_parm args Name "Name" "OpenWrt"
45 append_bool args no_monitor "no-monitor" 0
46 append_bool args Routing "Routing" 0
47 append_parm args trace "trace" # "7"
48 append_bool args tpuarts_ack_all_group "tpuarts-ack-all-group" 0
49 append_bool args tpuarts_ack_all_individual "tpuarts-ack-all-individual" 0
50 append_bool args tpuarts_disch_reset "tpuarts-disch-reset" 0
51 append_bool args Tunnelling "Tunnelling" 1
52 append_bool args Discovery "Discovery" 1
53 append_parm args Server "Server" "224.0.23.12"
54 append_parm args listen_local "listen-local" "/var/run/knxd"
55 config_get url args url
56 if [ "$url" == "usb:" ] ; then
57 url="usb:""$(findknxusb | tail -n1 | sed -e 's/device: \([0-9]:[0-9]:[0-9]\):[0-9].*/\1/')"
58 fi
59 echo "/usr/lib/knxd_args $params $url"
60 /usr/lib/knxd_args $params $url > /tmp/etc/knxd.ini
61 procd_open_instance
62 procd_set_param command $PROG "/tmp/etc/knxd.ini"
63 procd_set_param respawn
64 procd_close_instance
65 }
66
67 stop_service() {
68 killall knxd
69 }
70
71 reload_service()
72 {
73 restart
74 }
75
76 service_triggers()
77 {
78 procd_add_reload_trigger knxd
79 }