mirror of
https://github.com/pi-hole/pi-hole
synced 2025-08-01 20:08:26 +00:00
echo improvements plus more
-now shows how many domains were found from each list -lines with no dots are removed from domain list -whitelist removes entries appropriately
This commit is contained in:
parent
99929b6bea
commit
c8cd8c4cd3
@ -20,10 +20,13 @@ piholeDir=/etc/pihole
|
|||||||
justDomainsExtension=domains
|
justDomainsExtension=domains
|
||||||
matter=pihole.0.matter.txt
|
matter=pihole.0.matter.txt
|
||||||
andLight=pihole.1.andLight.txt
|
andLight=pihole.1.andLight.txt
|
||||||
eventHorizion=pihole.2.eventHorizon.txt
|
supernova=pihole.2.supernova.txt
|
||||||
|
eventHorizion=pihole.3.eventHorizon.txt
|
||||||
accretionDisc=/etc/dnsmasq.d/adList.conf
|
accretionDisc=/etc/dnsmasq.d/adList.conf
|
||||||
blacklist=$piholeDir/blacklist.txt
|
blacklist=$piholeDir/blacklist.txt
|
||||||
|
latentBlacklist=$origin/latentBlacklist.txt
|
||||||
whitelist=$piholeDir/whitelist.txt
|
whitelist=$piholeDir/whitelist.txt
|
||||||
|
latentWhitelist=$origin/latentWhitelist.txt
|
||||||
|
|
||||||
# Create the Pi-Hole directory if it doesn't exist
|
# Create the Pi-Hole directory if it doesn't exist
|
||||||
if [[ -d $piholeDir ]];then
|
if [[ -d $piholeDir ]];then
|
||||||
@ -45,6 +48,7 @@ do
|
|||||||
echo "Getting $domain list..."
|
echo "Getting $domain list..."
|
||||||
curl -s -o "$saveLocation" -A "Mozilla/10.0" "${sources[$i]}"
|
curl -s -o "$saveLocation" -A "Mozilla/10.0" "${sources[$i]}"
|
||||||
cat "$saveLocation" | awk '{if ($1 !~ "#" && $1 !~ "/" && $2 !~ "#" && $2 !~ "/" && $0 != "^$" && $2 != "") { print $2}}' > $saveLocation."$justDomainsExtension"
|
cat "$saveLocation" | awk '{if ($1 !~ "#" && $1 !~ "/" && $2 !~ "#" && $2 !~ "/" && $0 != "^$" && $2 != "") { print $2}}' > $saveLocation."$justDomainsExtension"
|
||||||
|
echo " $(cat $saveLocation.$justDomainsExtension | wc -l | sed 's/^[ \t]*//') domains found."
|
||||||
done
|
done
|
||||||
|
|
||||||
# Find all files with the .domains extension and compile them into one file
|
# Find all files with the .domains extension and compile them into one file
|
||||||
@ -66,10 +70,12 @@ function gravity_advanced()
|
|||||||
# Sort domains by TLD and remove duplicates
|
# Sort domains by TLD and remove duplicates
|
||||||
numberOf=$(cat $origin/$andLight | wc -l | sed 's/^[ \t]*//')
|
numberOf=$(cat $origin/$andLight | wc -l | sed 's/^[ \t]*//')
|
||||||
echo "$numberOf domains being pulled in by gravity..."
|
echo "$numberOf domains being pulled in by gravity..."
|
||||||
cat $origin/$andLight | sed $'s/\r$//' | awk -F. '{for (i=NF; i>1; --i) printf "%s.",$i;print $1}' | sort -t'.' -k1,2 | awk -F. '{for (i=NF; i>1; --i) printf "%s.",$i;print $1}' | uniq > $origin/$eventHorizion
|
# Remove lines with no dots (i.e. localhost, localdomain, etc)
|
||||||
|
echo -n "" > $origin/$supernova;for i in $origin/*.$justDomainsExtension;do grep '\.' $i >> $origin/$supernova;done
|
||||||
|
# Remove newlines, sort by TLD, remove duplicates
|
||||||
|
cat $origin/$supernova | sed $'s/\r$//' | awk -F. '{for (i=NF; i>1; --i) printf "%s.",$i;print $1}' | sort -t'.' -k1,2 | awk -F. '{for (i=NF; i>1; --i) printf "%s.",$i;print $1}' | uniq > $origin/$eventHorizion
|
||||||
numberOf=$(cat $origin/$eventHorizion | wc -l | sed 's/^[ \t]*//')
|
numberOf=$(cat $origin/$eventHorizion | wc -l | sed 's/^[ \t]*//')
|
||||||
echo "$numberOf unique domains trapped in the event horizon."
|
echo "$numberOf unique domains trapped in the event horizon."
|
||||||
|
|
||||||
# Format domain list as address=/example.com/127.0.0.1
|
# Format domain list as address=/example.com/127.0.0.1
|
||||||
echo "** Formatting domains into a dnsmasq file..."
|
echo "** Formatting domains into a dnsmasq file..."
|
||||||
cat $origin/$eventHorizion | awk -v "IP=$piholeIP" '{sub(/\r$/,""); print "address=/"$0"/"IP}' > $accretionDisc
|
cat $origin/$eventHorizion | awk -v "IP=$piholeIP" '{sub(/\r$/,""); print "address=/"$0"/"IP}' > $accretionDisc
|
||||||
@ -81,7 +87,10 @@ if [[ -f $whitelist ]];then
|
|||||||
# Remove whitelist entries
|
# Remove whitelist entries
|
||||||
numberOf=$(cat $whitelist | wc -l | sed 's/^[ \t]*//')
|
numberOf=$(cat $whitelist | wc -l | sed 's/^[ \t]*//')
|
||||||
echo "** Whitelisting $numberOf domain(s)..."
|
echo "** Whitelisting $numberOf domain(s)..."
|
||||||
cat $origin/$matter | grep -vwf $whitelist > $origin/$andLight
|
# Append a "$" to the end of each line so it can be parsed out with grep -w
|
||||||
|
echo -n "^$" > $latentWhitelist
|
||||||
|
awk -F '[# \t]' 'NF>0&&$1!="" {print $1"$"}' $whitelist > $latentWhitelist
|
||||||
|
cat $origin/$matter | grep -vwf $latentWhitelist > $origin/$andLight
|
||||||
gravity_advanced
|
gravity_advanced
|
||||||
|
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user