Merge pull request #2874 from dibdot/adblock
[feed/packages.git] / net / adblock / files / adblock.init
1 #!/bin/sh /etc/rc.common
2 #
3
4 START=99
5 EXTRA_COMMANDS="toggle cfgup"
6 EXTRA_HELP=" toggle Toggle adblocking 'on' or 'off'
7 cfgup Update the adblock configuration file"
8
9 adb_debug=0
10 adb_pid="${$}"
11 adb_script="/usr/bin/adblock-update.sh"
12 adb_helper="/usr/bin/adblock-helper.sh"
13 adb_pidfile="/var/run/adblock.pid"
14 bg_parm="&"
15 unset log_parm
16
17 if [ $((adb_debug)) -eq 0 ]
18 then
19 exec 2>/dev/null
20 fi
21
22 if [ -t 1 ]
23 then
24 log_parm="-s"
25 unset bg_parm
26 fi
27
28 if [ -r "${adb_pidfile}" ]
29 then
30 logger ${log_parm} -t "adblock[${adb_pid}] error" "adblock service already running ($(cat ${adb_pidfile}))" 2>&1
31 exit 255
32 fi
33
34 boot()
35 {
36 return 0
37 }
38
39 start()
40 {
41 eval "${adb_script}" ${bg_parm}
42 return 0
43 }
44
45 restart()
46 {
47 stop
48 start
49 }
50
51 reload()
52 {
53 reload="true"
54 stop
55 start
56 }
57
58 stop()
59 {
60 . "${adb_helper}"
61 f_envload
62 f_rmdns
63 f_rmuhttpd
64 config_foreach f_rmconfig source
65 if [ -n "$(${adb_uci} -q changes adblock)" ]
66 then
67 "${adb_uci}" -q commit adblock
68 fi
69 if [ -z "${reload}" ]
70 then
71 f_rmfirewall
72 fi
73 if [ -n "${rm_dns}" ] || [ -n "${rm_uhttpd}" ] || [ -n "${rm_fw}" ] || [ -n "${rm_cfg}" ]
74 then
75 logger ${log_parm} -t "adblock[${adb_pid}] info " "all adblock related services stopped" 2>&1
76 fi
77 return 0
78 }
79
80 toggle()
81 {
82 . "${adb_helper}"
83 if [ -d "${adb_dnshidedir}" ]
84 then
85 list_dns="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
86 list_dnshide="$(find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
87 if [ -n "${list_dns}" ]
88 then
89 source="${adb_dnsdir}/${adb_dnsprefix}"
90 target="${adb_dnshidedir}"
91 pos="off"
92 elif [ -n "${list_dnshide}" ]
93 then
94 source="${adb_dnshidedir}/${adb_dnsprefix}"
95 target="${adb_dnsdir}"
96 pos="on"
97 fi
98 if [ -n "${list_dns}" ] || [ -n "${list_dnshide}" ]
99 then
100 if [ "$(${adb_uci} -q get adblock.global.adb_restricted)" = "1" ]
101 then
102 adb_uci="$(which true)"
103 fi
104 mv -f "${source}"* "${target}"
105 "${adb_uci}" -q set "adblock.global.adb_dnstoggle=${pos}"
106 "${adb_uci}" -q commit "adblock"
107 /etc/init.d/dnsmasq restart
108 logger ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblock switched '${pos}'" 2>&1
109 fi
110 fi
111 return 0
112 }
113
114 cfgup()
115 {
116 stop
117 cp -pf "/etc/adblock/adblock.conf.default" "/etc/config/adblock"
118 rc=$?
119 if [ $((rc)) -eq 0 ]
120 then
121 logger ${log_parm} -t "adblock[${adb_pid}] info " "default adblock configuration applied, please check the settings in '/etc/config/adblock'" 2>&1
122 else
123 logger ${log_parm} -t "adblock[${adb_pid}] info " "default adblock configuration not found, please re-install the package via 'opkg install adblock --force-maintainer'" 2>&1
124 fi
125 return 0
126 }