123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- #!/bin/sh
- # Copyright 2023 MOSSDeF, Stan Grishin (stangri@melmac.ca)
- # shellcheck disable=SC2015,SC3043,SC3060
- readonly adbFunctionsFile='/etc/init.d/adblock-fast'
- if [ -s "$adbFunctionsFile" ]; then
- # shellcheck source=../../etc/init.d/adblock-fast
- . "$adbFunctionsFile"
- else
- printf "%b: adblock-fast init.d file (%s) not found! \n" '\033[0;31mERROR\033[0m' "$adbFunctionsFile"
- fi
- # Transition from simple-adblock
- _enable_url() {
- local cfg="$1" url="$2" action="$3"
- local u a
- config_get u "$cfg" 'url'
- config_get a "$cfg" 'action' 'block'
- if [ "$u" = "$url" ] && [ "$a" = "$action" ]; then
- uci del "${packageName}.${cfg}.enabled" && _found=1
- fi
- }
- enable_add_url() {
- local url="$1" action="$2" _found
- config_load "$packageName"
- config_foreach _enable_url 'file_url' "$url" "$action"
- if [ -z "$_found" ]; then
- uci add "${packageName}" 'file_url' >/dev/null 2>&1
- uci set "${packageName}.@file_url[-1].url=$url"
- uci set "${packageName}.@file_url[-1].size=$(get_url_filesize "$url")"
- uci set "${packageName}.@file_url[-1].action=$action"
- fi
- }
- if [ -s '/etc/config/simple-adblock' ] \
- && [ ! -s '/etc/config/adblock-fast-opkg' ] \
- && [ "$(uci get adblock-fast.config.enabled)" = '0' ]; then
- cp -f '/etc/config/adblock-fast' '/etc/config/adblock-fast-opkg'
- enabled="$(uci get simple-adblock.config.enabled)"
- if [ -x '/etc/init.d/simple-adblock' ]; then
- output "Stopping and disabling simple-adblock "
- if /etc/init.d/simple-adblock stop >/dev/null 2>&1 \
- && /etc/init.d/simple-adblock disable \
- && uci set simple-adblock.config.enabled=0 \
- && uci commit simple-adblock; then
- output_okn
- else
- output_failn
- fi
- else
- output "Disabling simple-adblock."
- if uci set simple-adblock.config.enabled=0 \
- && uci commit simple-adblock; then
- output_okn
- else
- output_failn
- fi
- fi
- output "Migrating simple-adblock config file "
- for i in allow_non_ascii canary_domains_icloud canary_domains_mozilla \
- compressed_cache compressed_cache_dir config_update_enabled \
- curl_additional_param curl_max_file_size curl_retry download_timeout \
- debug dns dns_instance dnsmasq_config_file_url force_dns led \
- parallel_downloads procd_trigger_wan6 procd_boot_wan_timeout verbosity; do
- j="$(uci -q get simple-adblock.config.${i})"
- [ -n "$j" ] && uci set "${packageName}.config.${i}=${j}"
- done
- [ -n "$enabled" ] && uci set "${packageName}.config.enabled=${enabled}"
- j="$(uci -q get simple-adblock.config.config_update_url)"
- if [ "${j//simple-adblock/}" = "$j" ]; then
- uci set "${packageName}.config.config_update_url=$j"
- fi
- ccd="$(uci get simple-adblock.config.compressed_cache_dir)"
- ccd="${ccd:-/etc}"
- for j in $(uci -q get simple-adblock.config.allowed_domain); do
- [ -n "$j" ] && uci add_list "${packageName}.config.allowed_domain=${j}"
- done
- for j in $(uci -q get simple-adblock.config.blocked_domain); do
- [ -n "$j" ] && uci add_list "${packageName}.config.blocked_domain=${j}"
- done
- for j in $(uci -q get simple-adblock.config.force_dns_port); do
- [ -n "$j" ] && uci add_list "${packageName}.config.force_dns_port=${j}"
- done
- output_okn
- for i in allowed_domains_url blocked_adblockplus_url blocked_domains_url \
- blocked_hosts_url; do
- output "Migrating simple-adblock ${i} "
- for j in $(uci -q get simple-adblock.config.${i}); do
- if [ "$i" = 'allowed_domains_url' ]; then
- enable_add_url "$j" 'allow'
- else
- enable_add_url "$j" 'block'
- fi
- done
- output_okn
- done
- uci commit "$packageName"
- output "Migrating simple-adblock cache file(s) "
- for i in '/var/run/simple-adblock/dnsmasq.addnhosts.cache' \
- '/var/run/simple-adblock/dnsmasq.conf.cache' \
- '/var/run/simple-adblock/dnsmasq.ipset.cache' \
- '/var/run/simple-adblock/dnsmasq.nftset.cache' \
- '/var/run/simple-adblock/dnsmasq.servers.cache' \
- '/var/run/simple-adblock/unbound.cache'; do
- if [ -s "$i" ]; then
- current_dir="$(dirname "$i")"
- mkdir -p "${current_dir//simple-adblock/adblock-fast}"
- mv -f "$i" "${i//simple-adblock/adblock-fast}" && output_okn || output_failn
- fi
- done
- for i in 'simple-adblock.dnsmasq.addnhosts.gz' \
- 'simple-adblock.dnsmasq.conf.gz' \
- 'simple-adblock.dnsmasq.ipset.gz' \
- 'simple-adblock.dnsmasq.nftset.gz' \
- 'simple-adblock.dnsmasq.servers.gz' \
- 'simple-adblock.unbound.gz'; do
- i="${ccd}/${i}"
- if [ -s "$i" ]; then
- mkdir -p "${ccd//simple-adblock/adblock-fast}"
- mv -f "$i" "${i//simple-adblock/adblock-fast}" && output_okn || output_failn
- fi
- done
- output_okn
- fi
- exit 0
|