aac132969b248973f5d32a770bb18de9908c566f
[feed/packages.git] / net / travelmate / files / travelmate.init
1 #!/bin/sh /etc/rc.common
2
3 START=35
4 USE_PROCD=1
5
6 EXTRA_COMMANDS="status"
7 EXTRA_HELP=" status Print runtime information"
8
9 trm_init="/etc/init.d/travelmate"
10 trm_script="/usr/bin/travelmate.sh"
11
12 boot()
13 {
14 ubus -t 30 wait_for network.interface 2>/dev/null
15 rc_procd start_service
16 }
17
18 start_service()
19 {
20 if [ $("${trm_init}" enabled; printf "%u" ${?}) -eq 0 ]
21 then
22 procd_open_instance "travelmate"
23 procd_set_param command "${trm_script}" "${@}"
24 procd_set_param stdout 1
25 procd_set_param stderr 1
26 procd_close_instance
27 fi
28 }
29
30 stop_service()
31 {
32 local rtfile="$(uci -q get travelmate.global.trm_rtfile)"
33
34 rtfile="${rtfile:="/tmp/trm_runtime.json"}"
35 > "${rtfile}"
36 rc_procd start_service
37 }
38
39 status()
40 {
41 rc_procd "${trm_script}" status
42 }
43
44 service_triggers()
45 {
46 local iface="$(uci -q get travelmate.global.trm_iface)"
47 local delay="$(uci -q get travelmate.global.trm_triggerdelay)"
48
49 PROCD_RELOAD_DELAY=$((${delay:=2} * 1000))
50 for name in ${iface}
51 do
52 procd_add_interface_trigger "interface.*.down" "${name}" "${trm_init}" start
53 done
54 PROCD_RELOAD_DELAY=1000
55 procd_add_config_trigger "config.change" "travelmate" "${trm_init}" start
56 }