Merge pull request #2815 from commodo/python-setuptools-upgrade
[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 PATH="/usr/sbin:/usr/bin:/sbin:/bin"
10
11 adb_debug=0
12 if [ $((adb_debug)) -eq 0 ]
13 then
14 exec 2>/dev/null
15 fi
16 adb_pid="${$}"
17 adb_script="/usr/bin/adblock-update.sh"
18 adb_dnsdir="/tmp/dnsmasq.d"
19 adb_dnshidedir="${adb_dnsdir}/.adb_hidden"
20 adb_dnsprefix="adb_list"
21 adb_pidfile="/var/run/adblock.pid"
22 adb_log="$(which logger)"
23 adb_uci="$(which uci)"
24
25 if [ -t 1 ]
26 then
27 log_parm="-s"
28 unset bg_parm
29 else
30 unset log_parm
31 bg_parm="&"
32 fi
33
34 if [ -r "${adb_pidfile}" ]
35 then
36 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] error" "adblock service already running ($(cat ${adb_pidfile}))" 2>&1
37 exit 255
38 fi
39
40 rm_config()
41 {
42 local value opt section="${1}" options="adb_src_timestamp adb_src_count"
43 for opt in ${options}
44 do
45 "${adb_uci}" -q delete "adblock.${section}.${opt}"
46 done
47 }
48
49 boot()
50 {
51 return 0
52 }
53
54 start()
55 {
56 eval "${adb_script}" ${bg_parm}
57 return 0
58 }
59
60 restart()
61 {
62 stop
63 start
64 }
65
66 reload()
67 {
68 stop
69 start
70 }
71
72 stop()
73 {
74 if [ -n "$(${adb_uci} -q get "adblock.global.adb_overall_count")" ]
75 then
76 . "/lib/functions.sh"
77 config_load adblock
78 config_foreach rm_config source
79 "${adb_uci}" -q delete "adblock.global.adb_dnstoggle"
80 "${adb_uci}" -q delete "adblock.global.adb_overall_count"
81 "${adb_uci}" -q commit "adblock"
82 fi
83 if [ -d "${adb_dnshidedir}" ]
84 then
85 find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -exec mv -f "{}" "${adb_dnsdir}" \;
86 fi
87 rm_done="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print -exec rm -f "{}" \;)"
88 rc=${?}
89 if [ $((rc)) -eq 0 ] && [ -n "${rm_done}" ]
90 then
91 rm -rf "${adb_dnshidedir}"
92 /etc/init.d/dnsmasq restart
93 /etc/init.d/firewall restart
94 fi
95 uhttpd_pid="$(pgrep -f "uhttpd -h /www/adblock")"
96 if [ -n "${uhttpd_pid}" ]
97 then
98 kill -9 "${uhttpd_pid}"
99 fi
100 if [ -n "${rm_done}" ] || [ -n "${uhttpd_pid}" ]
101 then
102 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "all adblock related services stopped" 2>&1
103 fi
104 return 0
105 }
106
107 toggle()
108 {
109 if [ "$(${adb_uci} -q get "adblock.global.adb_restricted")" = "1" ]
110 then
111 adb_uci="$(which true)"
112 fi
113 if [ -d "${adb_dnshidedir}" ]
114 then
115 list_dns="$(find "${adb_dnsdir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
116 list_dnshide="$(find "${adb_dnshidedir}" -maxdepth 1 -type f -name "${adb_dnsprefix}*" -print)"
117 if [ -n "${list_dns}" ]
118 then
119 mv -f "${adb_dnsdir}/${adb_dnsprefix}"* "${adb_dnshidedir}"
120 "${adb_uci}" -q set "adblock.global.adb_dnstoggle=off"
121 "${adb_uci}" -q commit "adblock"
122 /etc/init.d/dnsmasq restart
123 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblocking switched 'off'" 2>&1
124 elif [ -n "${list_dnshide}" ]
125 then
126 mv -f "${adb_dnshidedir}/${adb_dnsprefix}"* "${adb_dnsdir}"
127 "${adb_uci}" -q set "adblock.global.adb_dnstoggle=on"
128 "${adb_uci}" -q commit "adblock"
129 /etc/init.d/dnsmasq restart
130 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "toggle for adblocking switched 'on'" 2>&1
131 fi
132 fi
133 return 0
134 }
135
136 cfgup()
137 {
138 stop
139 cp -pf "/etc/adblock/adblock.conf.default" "/etc/config/adblock"
140 rc=$?
141 if [ $((rc)) -eq 0 ]
142 then
143 "${adb_log}" ${log_parm} -t "adblock[${adb_pid}] info " "default adblock configuration applied, please check the settings in '/etc/config/adblock'" 2>&1
144 else
145 "${adb_log}" ${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
146 fi
147 }