2018-06-17 12:26:57 +00:00
|
|
|
#!/bin/bash
|
2018-06-17 12:43:33 +00:00
|
|
|
# Pi-hole: A black hole for Internet advertisements
|
|
|
|
# (c) 2017 Pi-hole, LLC (https://pi-hole.net)
|
|
|
|
# Network-wide ad blocking via your own hardware.
|
|
|
|
#
|
|
|
|
# Provides an automated migration subroutine to convert Pi-hole v3.x wildcard domains to Pi-hole v4.x regex filters
|
|
|
|
#
|
|
|
|
# This file is copyright under the latest version of the EUPL.
|
|
|
|
# Please see LICENSE file for your rights under this license.
|
|
|
|
|
|
|
|
# regexFile set in gravity.sh
|
2018-06-17 12:26:57 +00:00
|
|
|
|
|
|
|
wildcardFile="/etc/dnsmasq.d/03-pihole-wildcard.conf"
|
|
|
|
|
|
|
|
convert_wildcard_to_regex() {
|
2018-07-20 21:00:34 +00:00
|
|
|
if [ ! -f "${wildcardFile}" ]; then
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
local addrlines domains uniquedomains
|
|
|
|
# Obtain wildcard domains from old file
|
|
|
|
addrlines="$(grep -oE "/.*/" ${wildcardFile})"
|
|
|
|
# Strip "/" from domain names and convert "." to regex-compatible "\."
|
|
|
|
domains="$(sed 's/\///g;s/\./\\./g' <<< "${addrlines}")"
|
|
|
|
# Remove repeated domains (may have been inserted two times due to A and AAAA blocking)
|
|
|
|
uniquedomains="$(uniq <<< "${domains}")"
|
|
|
|
# Automatically generate regex filters and remove old wildcards file
|
2018-08-01 02:16:40 +00:00
|
|
|
awk '{print "(^|\\.)"$0"$"}' <<< "${uniquedomains}" >> "${regexFile:?}" && rm "${wildcardFile}"
|
2018-06-17 12:26:57 +00:00
|
|
|
}
|