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