mirror of
https://github.com/pi-hole/pi-hole.git
synced 2025-04-23 07:40:15 +00:00
Merge branch 'ScriptCleanup'
Conflicts: README.md advanced/Scripts/blacklist.sh advanced/Scripts/whitelist.sh automated install/basic-install.sh gravity.sh
This commit is contained in:
commit
8ef4c12f97
8 changed files with 336 additions and 142 deletions
|
@ -33,13 +33,11 @@ versbose=true
|
|||
domList=()
|
||||
domToRemoveList=()
|
||||
|
||||
|
||||
piholeIPfile=/tmp/piholeIP
|
||||
piholeIPv6file=/etc/pihole/.useIPv6
|
||||
|
||||
# Otherwise, the IP address can be taken directly from the machine, which will happen when the script is run by the user and not the installation script
|
||||
IPv4dev=$(ip route get 8.8.8.8 | awk '{for(i=1;i<=NF;i++)if($i~/dev/)print $(i+1)}')
|
||||
piholeIPCIDR=$(ip -o -f inet addr show dev $IPv4dev | awk '{print $4}' | awk 'END {print}')
|
||||
piholeIPCIDR=$(ip -o -f inet addr show dev "$IPv4dev" | awk '{print $4}' | awk 'END {print}')
|
||||
piholeIP=${piholeIPCIDR%/*}
|
||||
|
||||
modifyHost=false
|
||||
|
@ -53,11 +51,19 @@ fi
|
|||
|
||||
function HandleOther(){
|
||||
#check validity of domain
|
||||
<<<<<<< HEAD
|
||||
validDomain=$(echo $1 | perl -ne'print if /\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b/')
|
||||
|
||||
if [ -z "$validDomain" ]; then
|
||||
echo $1 is not a valid argument or domain name
|
||||
else
|
||||
=======
|
||||
validDomain=$(echo "$1" | perl -ne'print if /\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b/')
|
||||
|
||||
if [ -z "$validDomain" ]; then
|
||||
echo "$1" is not a valid argument or domain name
|
||||
else
|
||||
>>>>>>> ScriptCleanup
|
||||
domList=("${domList[@]}" $validDomain)
|
||||
fi
|
||||
}
|
||||
|
@ -68,11 +74,17 @@ function PopBlacklistFile(){
|
|||
touch $blacklist
|
||||
fi
|
||||
for dom in "${domList[@]}"
|
||||
<<<<<<< HEAD
|
||||
do
|
||||
if $addmode; then
|
||||
AddDomain $dom
|
||||
=======
|
||||
do
|
||||
if "$addmode"; then
|
||||
AddDomain "$dom"
|
||||
>>>>>>> ScriptCleanup
|
||||
else
|
||||
RemoveDomain $dom
|
||||
RemoveDomain "$dom"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
@ -86,7 +98,7 @@ function AddDomain(){
|
|||
if $versbose; then
|
||||
echo -n "::: Adding $1 to blacklist file..."
|
||||
fi
|
||||
echo $1 >> $blacklist
|
||||
echo "$1" >> $blacklist
|
||||
modifyHost=true
|
||||
echo " done!"
|
||||
else
|
||||
|
@ -119,9 +131,10 @@ function ModifyHostFile(){
|
|||
if $addmode; then
|
||||
#add domains to the hosts file
|
||||
if [[ -r $blacklist ]];then
|
||||
numberOf=$(cat $blacklist | sed '/^\s*$/d' | wc -l)
|
||||
numberOf=$($blacklist | sed '/^\s*$/d' | wc -l)
|
||||
plural=; [[ "$numberOf" != "1" ]] && plural=s
|
||||
echo ":::"
|
||||
<<<<<<< HEAD
|
||||
echo -n "::: Modifying HOSTS file to blacklist $numberOf domain${plural}..."
|
||||
if [[ -n $piholeIPv6 ]];then
|
||||
cat $blacklist | awk -v ipv4addr="$piholeIP" -v ipv6addr="$piholeIPv6" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> $adList
|
||||
|
@ -129,6 +142,15 @@ function ModifyHostFile(){
|
|||
cat $blacklist | awk -v ipv4addr="$piholeIP" '{sub(/\r$/,""); print ipv4addr" "$0}' >>$adList
|
||||
fi
|
||||
|
||||
=======
|
||||
echo -n "::: Modifying HOSTS file to blacklist $numberOf domain${plural}..."
|
||||
if [[ -n $piholeIPv6 ]];then
|
||||
$blacklist | awk -v ipv4addr="$piholeIP" -v ipv6addr="$piholeIPv6" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> $adList
|
||||
else
|
||||
$blacklist | awk -v ipv4addr="$piholeIP" '{sub(/\r$/,""); print ipv4addr" "$0}' >>$adList
|
||||
fi
|
||||
|
||||
>>>>>>> ScriptCleanup
|
||||
fi
|
||||
else
|
||||
|
||||
|
@ -138,10 +160,14 @@ function ModifyHostFile(){
|
|||
#we need to remove the domains from the blacklist file and the host file
|
||||
echo "::: $dom"
|
||||
echo -n "::: removing from HOSTS file..."
|
||||
<<<<<<< HEAD
|
||||
echo $dom | sed 's/\./\\./g' | xargs -I {} perl -i -ne'print unless /[^.]'{}'(?!.)/;' $adList
|
||||
=======
|
||||
echo "$dom" | sed 's/\./\\./g' | xargs -I {} perl -i -ne'print unless /[^.]'{}'(?!.)/;' $adList
|
||||
>>>>>>> ScriptCleanup
|
||||
echo " done!"
|
||||
echo -n "::: removing from blackist.txt..."
|
||||
echo $dom | sed 's/\./\\./g' | xargs -I {} perl -i -ne'print unless /'{}'(?!.)/;' $blacklist
|
||||
echo "$dom" | sed 's/\./\\./g' | xargs -I {} perl -i -ne'print unless /'{}'(?!.)/;' $blacklist
|
||||
echo " done!"
|
||||
done
|
||||
fi
|
||||
|
@ -157,7 +183,7 @@ function Reload() {
|
|||
|
||||
if [[ $dnsmasqPid ]]; then
|
||||
# service already running - reload config
|
||||
sudo kill -HUP $dnsmasqPid
|
||||
sudo kill -HUP "$dnsmasqPid"
|
||||
else
|
||||
# service not running, start it up
|
||||
sudo service dnsmasq start
|
||||
|
@ -173,8 +199,13 @@ do
|
|||
"-nr"| "--noreload" ) reload=false;;
|
||||
"-d" | "--delmode" ) addmode=false;;
|
||||
"-f" | "--force" ) force=true;;
|
||||
<<<<<<< HEAD
|
||||
"-q" | "--quiet" ) versbose=false;;
|
||||
* ) HandleOther $var;;
|
||||
=======
|
||||
"-q" | "--quiet" ) versbose=false;;
|
||||
* ) HandleOther "$var";;
|
||||
>>>>>>> ScriptCleanup
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ function CalcBlockedDomains(){
|
|||
|
||||
function CalcQueriesToday(){
|
||||
if [ -e "$piLog" ];then
|
||||
queriesToday=$(cat "$piLog" | grep "$today" | awk '/query/ {print $6}' | wc -l)
|
||||
queriesToday=$("$piLog" | grep "$today" | awk '/query/ {print $6}' | wc -l)
|
||||
else
|
||||
queriesToday="Err."
|
||||
fi
|
||||
|
@ -43,7 +43,7 @@ function CalcQueriesToday(){
|
|||
|
||||
function CalcblockedToday(){
|
||||
if [ -e "$piLog" ] && [ -e "$gravity" ];then
|
||||
blockedToday=$(cat $piLog | awk '/\/etc\/pihole\/gravity.list/ && !/address/ {print $6}' | wc -l)
|
||||
blockedToday=$($piLog | awk '/\/etc\/pihole\/gravity.list/ && !/address/ {print $6}' | wc -l)
|
||||
else
|
||||
blockedToday="Err."
|
||||
fi
|
||||
|
|
|
@ -33,12 +33,11 @@ versbose=true
|
|||
domList=()
|
||||
domToRemoveList=()
|
||||
|
||||
piholeIPfile=/tmp/piholeIP
|
||||
piholeIPv6file=/etc/pihole/.useIPv6
|
||||
|
||||
# Otherwise, the IP address can be taken directly from the machine, which will happen when the script is run by the user and not the installation script
|
||||
IPv4dev=$(ip route get 8.8.8.8 | awk '{for(i=1;i<=NF;i++)if($i~/dev/)print $(i+1)}')
|
||||
piholeIPCIDR=$(ip -o -f inet addr show dev $IPv4dev | awk '{print $4}' | awk 'END {print}')
|
||||
piholeIPCIDR=$(ip -o -f inet addr show dev "$IPv4dev" | awk '{print $4}' | awk 'END {print}')
|
||||
piholeIP=${piholeIPCIDR%/*}
|
||||
|
||||
modifyHost=false
|
||||
|
@ -52,8 +51,13 @@ fi
|
|||
|
||||
function HandleOther(){
|
||||
#check validity of domain
|
||||
<<<<<<< HEAD
|
||||
validDomain=$(echo $1 | perl -ne'print if /\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b/')
|
||||
|
||||
=======
|
||||
validDomain=$(echo "$1" | perl -ne'print if /\b((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}\b/')
|
||||
|
||||
>>>>>>> ScriptCleanup
|
||||
if [ -z "$validDomain" ]; then
|
||||
echo "::: $1 is not a valid argument or domain name"
|
||||
else
|
||||
|
@ -69,9 +73,9 @@ function PopWhitelistFile(){
|
|||
for dom in "${domList[@]}"
|
||||
do
|
||||
if $addmode; then
|
||||
AddDomain $dom
|
||||
AddDomain "$dom"
|
||||
else
|
||||
RemoveDomain $dom
|
||||
RemoveDomain "$dom"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
@ -86,7 +90,7 @@ function AddDomain(){
|
|||
if $versbose; then
|
||||
echo -n "::: Adding $1 to whitelist.txt..."
|
||||
fi
|
||||
echo $1 >> $whitelist
|
||||
echo "$1" >> $whitelist
|
||||
modifyHost=true
|
||||
if $versbose; then
|
||||
echo " done!"
|
||||
|
@ -122,12 +126,12 @@ function ModifyHostFile(){
|
|||
#remove domains in from hosts file
|
||||
if [[ -r $whitelist ]];then
|
||||
# Remove whitelist entries
|
||||
numberOf=$(cat $whitelist | sed '/^\s*$/d' | wc -l)
|
||||
numberOf=$($whitelist | sed '/^\s*$/d' | wc -l)
|
||||
plural=; [[ "$numberOf" != "1" ]] && plural=s
|
||||
echo ":::"
|
||||
echo -n "::: Modifying HOSTS file to whitelist $numberOf domain${plural}..."
|
||||
awk -F':' '{print $1}' $whitelist | while read line; do echo "$piholeIP $line"; done > /etc/pihole/whitelist.tmp
|
||||
awk -F':' '{print $1}' $whitelist | while read line; do echo "$piholeIPv6 $line"; done >> /etc/pihole/whitelist.tmp
|
||||
awk -F':' '{print $1}' $whitelist | while read -r line; do echo "$piholeIP $line"; done > /etc/pihole/whitelist.tmp
|
||||
awk -F':' '{print $1}' $whitelist | while read -r line; do echo "$piholeIPv6 $line"; done >> /etc/pihole/whitelist.tmp
|
||||
echo "l" >> /etc/pihole/whitelist.tmp
|
||||
grep -F -x -v -f /etc/pihole/whitelist.tmp /etc/pihole/gravity.list > /etc/pihole/gravity.tmp
|
||||
rm /etc/pihole/gravity.list
|
||||
|
@ -144,15 +148,15 @@ function ModifyHostFile(){
|
|||
do
|
||||
if [[ -n $piholeIPv6 ]];then
|
||||
echo -n "::: Un-whitelisting $rdom on IPv4 and IPv6..."
|
||||
echo $rdom | awk -v ipv4addr="$piholeIP" -v ipv6addr="$piholeIPv6" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> $adList
|
||||
echo "$rdom" | awk -v ipv4addr="$piholeIP" -v ipv6addr="$piholeIPv6" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> $adList
|
||||
echo " done!"
|
||||
else
|
||||
echo -n "::: Un-whitelisting $rdom on IPv4"
|
||||
echo $rdom | awk -v ipv4addr="$piholeIP" '{sub(/\r$/,""); print ipv4addr" "$0}' >>$adList
|
||||
echo "$rdom" | awk -v ipv4addr="$piholeIP" '{sub(/\r$/,""); print ipv4addr" "$0}' >>$adList
|
||||
echo " done!"
|
||||
fi
|
||||
echo -n "::: Removing $rdom from whitelist.txt..."
|
||||
echo $rdom| sed 's/\./\\./g' | xargs -I {} perl -i -ne'print unless /'{}'(?!.)/;' $whitelist
|
||||
echo "$rdom" | sed 's/\./\\./g' | xargs -I {} perl -i -ne'print unless /'{}'(?!.)/;' $whitelist
|
||||
echo " done!"
|
||||
done
|
||||
fi
|
||||
|
@ -166,7 +170,7 @@ function Reload() {
|
|||
|
||||
if [[ $dnsmasqPid ]]; then
|
||||
# service already running - reload config
|
||||
sudo kill -HUP $dnsmasqPid
|
||||
sudo kill -HUP "$dnsmasqPid"
|
||||
else
|
||||
# service not running, start it up
|
||||
sudo service dnsmasq start
|
||||
|
@ -182,8 +186,13 @@ do
|
|||
"-nr"| "--noreload" ) reload=false;;
|
||||
"-d" | "--delmode" ) addmode=false;;
|
||||
"-f" | "--force" ) force=true;;
|
||||
<<<<<<< HEAD
|
||||
"-q" | "--quiet" ) versbose=false;;
|
||||
* ) HandleOther $var;;
|
||||
=======
|
||||
"-q" | "--quiet" ) versbose=false;;
|
||||
* ) HandleOther "$var";;
|
||||
>>>>>>> ScriptCleanup
|
||||
esac
|
||||
done
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue