Merge pull request #3860 from commodo/micropython-lib-workaround
[feed/packages.git] / net / adblock / files / adblock.init
1 #!/bin/sh /etc/rc.common
2 #
3
4 START=90
5 USE_PROCD=1
6
7 EXTRA_COMMANDS="suspend resume query"
8 EXTRA_HELP=" suspend Suspend adblock processing
9 resume Resume adblock processing
10 query <DOMAIN> Query active blocklists for specific domain"
11
12 adb_script="/usr/bin/adblock.sh"
13
14 boot()
15 {
16 local wanif4 wanif6 cnt=0 max_cnt=30
17
18 . "/lib/functions/network.sh"
19 while [ ${cnt} -le ${max_cnt} ]
20 do
21 network_find_wan wanif4
22 network_find_wan6 wanif6
23 if [ -n "${wanif4}" ] || [ -n "${wanif6}" ] || [ ${cnt} -eq ${max_cnt} ]
24 then
25 rc_procd start_service
26 return 0
27 else
28 sleep 1
29 cnt=$((cnt+1))
30 network_flush_cache
31 fi
32 done
33 }
34
35 start_service()
36 {
37 if [ $(/etc/init.d/adblock enabled; printf ${?}) -eq 0 ]
38 then
39 procd_open_instance "adblock"
40 procd_set_param env adb_procd="true"
41 procd_set_param command "${adb_script}" "${@}"
42 procd_set_param stdout 1
43 procd_set_param stderr 1
44 procd_close_instance
45 fi
46 }
47
48 reload_service()
49 {
50 rc_procd start_service reload
51 }
52
53 stop_service()
54 {
55 export adb_procd="true"
56 rc_procd "${adb_script}" stop
57 }
58
59 restart()
60 {
61 rc_procd start_service restart
62 }
63
64 suspend()
65 {
66 rc_procd start_service suspend
67 }
68
69 resume()
70 {
71 rc_procd start_service resume
72 }
73
74 query()
75 {
76 export adb_procd="true"
77 rc_procd "${adb_script}" query "${1}"
78 }
79
80 service_triggers()
81 {
82 local iface="$(uci -q get adblock.global.adb_iface)"
83
84 procd_open_trigger
85 procd_add_config_trigger "config.change" "adblock" /etc/init.d/adblock start
86 if [ -z "${iface}" ]
87 then
88 procd_add_raw_trigger "interface.*.up" 1000 /etc/init.d/adblock start
89 else
90 for name in ${iface}
91 do
92 procd_add_interface_trigger "interface.*.up" "${name}" /etc/init.d/adblock start
93 done
94 fi
95 procd_close_trigger
96 }