mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-11-15 02:42:58 +00:00
Merge conflict resolution
This commit is contained in:
commit
a0d47be088
7 changed files with 89 additions and 139 deletions
|
@ -12,3 +12,8 @@ reviewers:
|
||||||
- PromoFaux
|
- PromoFaux
|
||||||
name: pullapprove
|
name: pullapprove
|
||||||
required: 3
|
required: 3
|
||||||
|
always_pending:
|
||||||
|
title_regex: '(WIP|wip)'
|
||||||
|
labels:
|
||||||
|
- wip
|
||||||
|
explanation: 'This PR is a work in progress...'
|
||||||
|
|
|
@ -338,7 +338,7 @@ function dumpPiHoleLog {
|
||||||
# Anything to be done after capturing of pihole.log terminates
|
# Anything to be done after capturing of pihole.log terminates
|
||||||
function finalWork {
|
function finalWork {
|
||||||
echo "::: Finshed debugging!"
|
echo "::: Finshed debugging!"
|
||||||
echo "::: The degug log can be uploaded to Termbin.com for easier sharing."
|
echo "::: The debug log can be uploaded to Termbin.com for easier sharing."
|
||||||
read -r -p "::: Would you like to upload the log? [y/N] " response
|
read -r -p "::: Would you like to upload the log? [y/N] " response
|
||||||
case ${response} in
|
case ${response} in
|
||||||
[yY][eE][sS]|[yY])
|
[yY][eE][sS]|[yY])
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Pi-hole: A black hole for Internet advertisements
|
|
||||||
# (c) 2015, 2016 by Jacob Salmela
|
|
||||||
# Network-wide ad blocking via your Raspberry Pi
|
|
||||||
# http://pi-hole.net
|
|
||||||
# Updates the Pi-hole web interface
|
|
||||||
#
|
|
||||||
# Pi-hole is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU General Public License as published by
|
|
||||||
# the Free Software Foundation, either version 2 of the License, or
|
|
||||||
# (at your option) any later version.
|
|
||||||
|
|
||||||
WEB_INTERFACE_GIT_URL="https://github.com/pi-hole/AdminLTE.git"
|
|
||||||
WEB_INTERFACE_DIR="/var/www/html/admin"
|
|
||||||
|
|
||||||
main() {
|
|
||||||
prerequisites
|
|
||||||
if ! is_repo; then
|
|
||||||
make_repo
|
|
||||||
fi
|
|
||||||
update_repo
|
|
||||||
}
|
|
||||||
|
|
||||||
prerequisites() {
|
|
||||||
|
|
||||||
# must be root to update
|
|
||||||
if [[ $EUID -ne 0 ]]; then
|
|
||||||
sudo bash "$0" "$@"
|
|
||||||
exit $?
|
|
||||||
fi
|
|
||||||
|
|
||||||
# web interface must already exist. this is a (lazy)
|
|
||||||
# check to make sure pihole is actually installed.
|
|
||||||
if [ ! -d "$WEB_INTERFACE_DIR" ]; then
|
|
||||||
echo "$WEB_INTERFACE_DIR not found. Exiting."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! type "git" > /dev/null; then
|
|
||||||
apt-get -y install git
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
is_repo() {
|
|
||||||
# if the web interface directory does not have a .git folder
|
|
||||||
# it means its using the master.zip archive from the install
|
|
||||||
# script.
|
|
||||||
if [ ! -d "$WEB_INTERFACE_DIR/.git" ]; then
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# removes the web interface installed from the master.zip archive and
|
|
||||||
# replaces it with the current master branch from github
|
|
||||||
make_repo() {
|
|
||||||
# remove the non-repod interface and clone the interface
|
|
||||||
rm -rf ${WEB_INTERFACE_DIR}
|
|
||||||
git clone "$WEB_INTERFACE_GIT_URL" "$WEB_INTERFACE_DIR"
|
|
||||||
}
|
|
||||||
|
|
||||||
# pulls the latest master branch from github
|
|
||||||
update_repo() {
|
|
||||||
# pull the latest commits
|
|
||||||
cd "$WEB_INTERFACE_DIR"
|
|
||||||
git pull
|
|
||||||
}
|
|
||||||
|
|
||||||
main
|
|
|
@ -13,9 +13,8 @@
|
||||||
# Download any updates from the adlists
|
# Download any updates from the adlists
|
||||||
59 1 * * 7 root /usr/local/bin/pihole updateGravity
|
59 1 * * 7 root /usr/local/bin/pihole updateGravity
|
||||||
|
|
||||||
# Pi-hole: Update the Web interface shortly after gravity runs
|
# Pi-hole: Update Pi-hole! Uncomment to enable auto update
|
||||||
# This should also update the version number if it is changed in the dashboard repo
|
#30 2 * * 7 root /usr/local/bin/pihole updatePihole
|
||||||
30 2 * * 7 root /usr/local/bin/pihole updateDashboard
|
|
||||||
|
|
||||||
# Pi-hole: Parse the log file before it is flushed and save the stats to a database
|
# Pi-hole: Parse the log file before it is flushed and save the stats to a database
|
||||||
# This will be used for a historical view of your Pi-hole's performance
|
# This will be used for a historical view of your Pi-hole's performance
|
||||||
|
|
|
@ -188,14 +188,13 @@ chooseInterface() {
|
||||||
|
|
||||||
# Find out how many interfaces are available to choose from
|
# Find out how many interfaces are available to choose from
|
||||||
interfaceCount=$(echo "$availableInterfaces" | wc -l)
|
interfaceCount=$(echo "$availableInterfaces" | wc -l)
|
||||||
chooseInterfaceCmd=(whiptail --separate-output --radiolist "Choose An Interface" ${r} ${c} ${interfaceCount})
|
chooseInterfaceCmd=(whiptail --separate-output --radiolist "Choose An Interface (press space to select)" ${r} ${c} ${interfaceCount})
|
||||||
chooseInterfaceOptions=$("${chooseInterfaceCmd[@]}" "${interfacesArray[@]}" 2>&1 >/dev/tty)
|
chooseInterfaceOptions=$("${chooseInterfaceCmd[@]}" "${interfacesArray[@]}" 2>&1 >/dev/tty)
|
||||||
if [[ $? = 0 ]]; then
|
if [[ $? = 0 ]]; then
|
||||||
for desiredInterface in ${chooseInterfaceOptions}
|
for desiredInterface in ${chooseInterfaceOptions}
|
||||||
do
|
do
|
||||||
piholeInterface=${desiredInterface}
|
piholeInterface=${desiredInterface}
|
||||||
echo "::: Using interface: $piholeInterface"
|
echo "::: Using interface: $piholeInterface"
|
||||||
echo "${piholeInterface}" > /tmp/piholeINT
|
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
echo "::: Cancel selected, exiting...."
|
echo "::: Cancel selected, exiting...."
|
||||||
|
@ -204,13 +203,6 @@ chooseInterface() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanupIPv6() {
|
|
||||||
# Removes IPv6 indicator file if we are not using IPv6
|
|
||||||
if [ -f "/etc/pihole/.useIPv6" ] && [ ! "$useIPv6" ]; then
|
|
||||||
rm /etc/pihole/.useIPv6
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
use4andor6() {
|
use4andor6() {
|
||||||
# Let use select IPv4 and/or IPv6
|
# Let use select IPv4 and/or IPv6
|
||||||
cmd=(whiptail --separate-output --checklist "Select Protocols (press space to select)" ${r} ${c} 2)
|
cmd=(whiptail --separate-output --checklist "Select Protocols (press space to select)" ${r} ${c} 2)
|
||||||
|
@ -249,7 +241,7 @@ use4andor6() {
|
||||||
echo "::: Exiting"
|
echo "::: Exiting"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
cleanupIPv6
|
|
||||||
else
|
else
|
||||||
echo "::: Cancel selected. Exiting..."
|
echo "::: Cancel selected. Exiting..."
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -260,8 +252,6 @@ useIPv6dialog() {
|
||||||
# Show the IPv6 address used for blocking
|
# Show the IPv6 address used for blocking
|
||||||
piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
|
piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
|
||||||
whiptail --msgbox --backtitle "IPv6..." --title "IPv6 Supported" "$piholeIPv6 will be used to block ads." ${r} ${c}
|
whiptail --msgbox --backtitle "IPv6..." --title "IPv6 Supported" "$piholeIPv6 will be used to block ads." ${r} ${c}
|
||||||
|
|
||||||
${SUDO} touch /etc/pihole/.useIPv6
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getStaticIPv4Settings() {
|
getStaticIPv4Settings() {
|
||||||
|
@ -273,8 +263,6 @@ getStaticIPv4Settings() {
|
||||||
whiptail --msgbox --backtitle "IP information" --title "FYI: IP Conflict" "It is possible your router could still try to assign this IP to a device, which would cause a conflict. But in most cases the router is smart enough to not do that.
|
whiptail --msgbox --backtitle "IP information" --title "FYI: IP Conflict" "It is possible your router could still try to assign this IP to a device, which would cause a conflict. But in most cases the router is smart enough to not do that.
|
||||||
If you are worried, either manually set the address, or modify the DHCP reservation pool so it does not include the IP you want.
|
If you are worried, either manually set the address, or modify the DHCP reservation pool so it does not include the IP you want.
|
||||||
It is also possible to use a DHCP reservation, but if you are going to do that, you might as well set a static address." ${r} ${c}
|
It is also possible to use a DHCP reservation, but if you are going to do that, you might as well set a static address." ${r} ${c}
|
||||||
#piholeIP is saved to a permanent file so gravity.sh can use it when updating
|
|
||||||
${SUDO} echo "${IPv4addr%/*}" > /etc/pihole/piholeIP
|
|
||||||
# Nothing else to do since the variables are already set above
|
# Nothing else to do since the variables are already set above
|
||||||
else
|
else
|
||||||
# Otherwise, we need to ask the user to input their desired settings.
|
# Otherwise, we need to ask the user to input their desired settings.
|
||||||
|
@ -294,10 +282,6 @@ It is also possible to use a DHCP reservation, but if you are going to do that,
|
||||||
if (whiptail --backtitle "Calibrating network interface" --title "Static IP Address" --yesno "Are these settings correct?
|
if (whiptail --backtitle "Calibrating network interface" --title "Static IP Address" --yesno "Are these settings correct?
|
||||||
IP address: $IPv4addr
|
IP address: $IPv4addr
|
||||||
Gateway: $IPv4gw" ${r} ${c}); then
|
Gateway: $IPv4gw" ${r} ${c}); then
|
||||||
# If the settings are correct, then we need to set the piholeIP
|
|
||||||
# Saving it to a temporary file us to retrieve it later when we run the gravity.sh script. piholeIP is saved to a permanent file so gravity.sh can use it when updating
|
|
||||||
$SUDO echo "${IPv4addr%/*}" > /etc/pihole/piholeIP
|
|
||||||
$SUDO echo "$piholeInterface" > /tmp/piholeINT
|
|
||||||
# After that's done, the loop ends and we move on
|
# After that's done, the loop ends and we move on
|
||||||
ipSettingsCorrect=True
|
ipSettingsCorrect=True
|
||||||
else
|
else
|
||||||
|
@ -358,6 +342,9 @@ setStaticIPv4() {
|
||||||
${SUDO} echo "ONBOOT=yes" >> ${IFCFG_FILE}
|
${SUDO} echo "ONBOOT=yes" >> ${IFCFG_FILE}
|
||||||
${SUDO} echo "IPADDR=$IPADDR" >> ${IFCFG_FILE}
|
${SUDO} echo "IPADDR=$IPADDR" >> ${IFCFG_FILE}
|
||||||
${SUDO} echo "PREFIX=$CIDR" >> ${IFCFG_FILE}
|
${SUDO} echo "PREFIX=$CIDR" >> ${IFCFG_FILE}
|
||||||
|
${SUDO} echo "GATEWAY=$IPv4gw" >> ${IFCFG_FILE}
|
||||||
|
${SUDO} echo "DNS1=$piholeDNS1" >> ${IFCFG_FILE}
|
||||||
|
${SUDO} echo "DNS2=$piholeDNS2" >> ${IFCFG_FILE}
|
||||||
${SUDO} echo "USERCTL=no" >> ${IFCFG_FILE}
|
${SUDO} echo "USERCTL=no" >> ${IFCFG_FILE}
|
||||||
${SUDO} ip addr replace dev "$piholeInterface" "$IPv4addr"
|
${SUDO} ip addr replace dev "$piholeInterface" "$IPv4addr"
|
||||||
if [ -x "$(command -v nmcli)" ];then
|
if [ -x "$(command -v nmcli)" ];then
|
||||||
|
@ -543,11 +530,10 @@ installScripts() {
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/blacklist.sh /opt/pihole/blacklist.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/blacklist.sh /opt/pihole/blacklist.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/piholeDebug.sh /opt/pihole/piholeDebug.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/piholeDebug.sh /opt/pihole/piholeDebug.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/piholeLogFlush.sh /opt/pihole/piholeLogFlush.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/piholeLogFlush.sh /opt/pihole/piholeLogFlush.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/updateDashboard.sh /opt/pihole/updateDashboard.sh
|
|
||||||
${SUDO} cp /etc/.pihole/automated\ install/uninstall.sh /opt/pihole/uninstall.sh
|
${SUDO} cp /etc/.pihole/automated\ install/uninstall.sh /opt/pihole/uninstall.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/setupLCD.sh /opt/pihole/setupLCD.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/setupLCD.sh /opt/pihole/setupLCD.sh
|
||||||
${SUDO} cp /etc/.pihole/advanced/Scripts/version.sh /opt/pihole/version.sh
|
${SUDO} cp /etc/.pihole/advanced/Scripts/version.sh /opt/pihole/version.sh
|
||||||
${SUDO} chmod 755 /opt/pihole/gravity.sh /opt/pihole/chronometer.sh /opt/pihole/whitelist.sh /opt/pihole/blacklist.sh /opt/pihole/piholeLogFlush.sh /opt/pihole/updateDashboard.sh /opt/pihole/uninstall.sh /opt/pihole/setupLCD.sh /opt/pihole/version.sh
|
${SUDO} chmod 755 /opt/pihole/gravity.sh /opt/pihole/chronometer.sh /opt/pihole/whitelist.sh /opt/pihole/blacklist.sh /opt/pihole/piholeLogFlush.sh /opt/pihole/uninstall.sh /opt/pihole/setupLCD.sh /opt/pihole/version.sh
|
||||||
${SUDO} cp /etc/.pihole/pihole /usr/local/bin/pihole
|
${SUDO} cp /etc/.pihole/pihole /usr/local/bin/pihole
|
||||||
${SUDO} chmod 755 /usr/local/bin/pihole
|
${SUDO} chmod 755 /usr/local/bin/pihole
|
||||||
${SUDO} cp /etc/.pihole/advanced/bash-completion/pihole /etc/bash_completion.d/pihole
|
${SUDO} cp /etc/.pihole/advanced/bash-completion/pihole /etc/bash_completion.d/pihole
|
||||||
|
@ -868,9 +854,9 @@ configureSelinux() {
|
||||||
printf "::: Enabling httpd server side includes (SSI).. "
|
printf "::: Enabling httpd server side includes (SSI).. "
|
||||||
${SUDO} setsebool -P httpd_ssi_exec on
|
${SUDO} setsebool -P httpd_ssi_exec on
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
echo -n "Success\n"
|
echo -n "Success"
|
||||||
fi
|
fi
|
||||||
printf ":::\tCompiling Pi-Hole SELinux policy..\n"
|
printf "\n:::\tCompiling Pi-Hole SELinux policy..\n"
|
||||||
${SUDO} checkmodule -M -m -o /etc/pihole/pihole.mod /etc/.pihole/advanced/selinux/pihole.te
|
${SUDO} checkmodule -M -m -o /etc/pihole/pihole.mod /etc/.pihole/advanced/selinux/pihole.te
|
||||||
${SUDO} semodule_package -o /etc/pihole/pihole.pp -m /etc/pihole/pihole.mod
|
${SUDO} semodule_package -o /etc/pihole/pihole.pp -m /etc/pihole/pihole.mod
|
||||||
${SUDO} semodule -i /etc/pihole/pihole.pp
|
${SUDO} semodule -i /etc/pihole/pihole.pp
|
||||||
|
|
53
gravity.sh
53
gravity.sh
|
@ -39,44 +39,26 @@ function helpFunc()
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
piholeIPfile=/etc/pihole/piholeIP
|
|
||||||
piholeIPv6file=/etc/pihole/.useIPv6
|
|
||||||
|
|
||||||
adListFile=/etc/pihole/adlists.list
|
adListFile=/etc/pihole/adlists.list
|
||||||
adListDefault=/etc/pihole/adlists.default
|
adListDefault=/etc/pihole/adlists.default
|
||||||
whitelistScript=/opt/pihole/whitelist.sh
|
whitelistScript=/opt/pihole/whitelist.sh
|
||||||
blacklistScript=/opt/pihole/blacklist.sh
|
blacklistScript=/opt/pihole/blacklist.sh
|
||||||
|
|
||||||
if [[ -f ${piholeIPfile} ]];then
|
#Source the setupVars from install script for the IP
|
||||||
# If the file exists, it means it was exported from the installation script and we should use that value instead of detecting it in this script
|
. /etc/pihole/setupVars.conf
|
||||||
piholeIP=$(cat ${piholeIPfile})
|
#Remove the /* from the end of the IPv4addr.
|
||||||
#rm $piholeIPfile
|
IPv4addr=${IPv4addr%/*}
|
||||||
else
|
|
||||||
# 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}')
|
|
||||||
piholeIP=${piholeIPCIDR%/*}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -f ${piholeIPv6file} ]];then
|
|
||||||
# If the file exists, then the user previously chose to use IPv6 in the automated installer
|
|
||||||
piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Variables for various stages of downloading and formatting the list
|
# Variables for various stages of downloading and formatting the list
|
||||||
## Nate 3/26/2016 - Commented unused variables
|
|
||||||
basename=pihole
|
basename=pihole
|
||||||
piholeDir=/etc/${basename}
|
piholeDir=/etc/${basename}
|
||||||
adList=${piholeDir}/gravity.list
|
adList=${piholeDir}/gravity.list
|
||||||
#blacklist=$piholeDir/blacklist.txt
|
|
||||||
#whitelist=$piholeDir/whitelist.txt
|
|
||||||
#latentWhitelist=$piholeDir/latentWhitelist.txt
|
|
||||||
justDomainsExtension=domains
|
justDomainsExtension=domains
|
||||||
matterandlight=${basename}.0.matterandlight.txt
|
matterAndLight=${basename}.0.matterandlight.txt
|
||||||
supernova=${basename}.1.supernova.txt
|
supernova=${basename}.1.supernova.txt
|
||||||
eventHorizon=${basename}.2.eventHorizon.txt
|
eventHorizon=${basename}.2.eventHorizon.txt
|
||||||
accretionDisc=${basename}.3.accretionDisc.txt
|
accretionDisc=${basename}.3.accretionDisc.txt
|
||||||
#eyeOfTheNeedle=$basename.4.wormhole.txt
|
|
||||||
|
|
||||||
# After setting defaults, check if there's local overrides
|
# After setting defaults, check if there's local overrides
|
||||||
if [[ -r ${piholeDir}/pihole.conf ]];then
|
if [[ -r ${piholeDir}/pihole.conf ]];then
|
||||||
|
@ -213,10 +195,10 @@ function gravity_Schwarzchild() {
|
||||||
echo "::: "
|
echo "::: "
|
||||||
# Find all active domains and compile them into one file and remove CRs
|
# Find all active domains and compile them into one file and remove CRs
|
||||||
echo -n "::: Aggregating list of domains..."
|
echo -n "::: Aggregating list of domains..."
|
||||||
truncate -s 0 ${piholeDir}/${matterandlight}
|
truncate -s 0 ${piholeDir}/${matterAndLight}
|
||||||
for i in "${activeDomains[@]}"
|
for i in "${activeDomains[@]}"
|
||||||
do
|
do
|
||||||
cat "$i" | tr -d '\r' >> ${piholeDir}/${matterandlight}
|
cat "$i" | tr -d '\r' >> ${piholeDir}/${matterAndLight}
|
||||||
done
|
done
|
||||||
echo " done!"
|
echo " done!"
|
||||||
}
|
}
|
||||||
|
@ -264,17 +246,23 @@ function gravity_unique() {
|
||||||
function gravity_hostFormat() {
|
function gravity_hostFormat() {
|
||||||
# Format domain list as "192.168.x.x domain.com"
|
# Format domain list as "192.168.x.x domain.com"
|
||||||
echo "::: Formatting domains into a HOSTS file..."
|
echo "::: Formatting domains into a HOSTS file..."
|
||||||
hostname=$(</etc/hostname)
|
if [[ -f /etc/hostname ]]; then
|
||||||
|
hostname=$(</etc/hostname)
|
||||||
|
elif [ -x "$(command -v hostname)" ]; then
|
||||||
|
hostname=$(hostname -f)
|
||||||
|
else
|
||||||
|
echo "::: Error: Unable to determine fully qualified domain name of host"
|
||||||
|
fi
|
||||||
# If there is a value in the $piholeIPv6, then IPv6 will be used, so the awk command modified to create a line for both protocols
|
# If there is a value in the $piholeIPv6, then IPv6 will be used, so the awk command modified to create a line for both protocols
|
||||||
if [[ -n ${piholeIPv6} ]];then
|
if [[ -n ${piholeIPv6} ]];then
|
||||||
# Add hostname and dummy domain to the top of gravity.list to make ping result return a friendlier looking domain! Also allows for an easy way to access the Pi-hole admin console (pi.hole/admin)
|
# Add hostname and dummy domain to the top of gravity.list to make ping result return a friendlier looking domain! Also allows for an easy way to access the Pi-hole admin console (pi.hole/admin)
|
||||||
echo -e "$piholeIP $hostname\n$piholeIPv6 $hostname\n$piholeIP pi.hole\n$piholeIPv6 pi.hole" > ${piholeDir}/${accretionDisc}
|
echo -e "$IPv4addr $hostname\n$piholeIPv6 $hostname\n$IPv4addr pi.hole\n$piholeIPv6 pi.hole" > ${piholeDir}/${accretionDisc}
|
||||||
cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$piholeIP" -v ipv6addr="$piholeIPv6" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> ${piholeDir}/${accretionDisc}
|
cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$IPv4addr" -v ipv6addr="$piholeIPv6" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> ${piholeDir}/${accretionDisc}
|
||||||
else
|
else
|
||||||
# Otherwise, just create gravity.list as normal using IPv4
|
# Otherwise, just create gravity.list as normal using IPv4
|
||||||
# Add hostname and dummy domain to the top of gravity.list to make ping result return a friendlier looking domain! Also allows for an easy way to access the Pi-hole admin console (pi.hole/admin)
|
# Add hostname and dummy domain to the top of gravity.list to make ping result return a friendlier looking domain! Also allows for an easy way to access the Pi-hole admin console (pi.hole/admin)
|
||||||
echo -e "$piholeIP $hostname\n$piholeIP pi.hole" > ${piholeDir}/${accretionDisc}
|
echo -e "$IPv4addr $hostname\n$IPv4addr pi.hole" > ${piholeDir}/${accretionDisc}
|
||||||
cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$piholeIP" '{sub(/\r$/,""); print ipv4addr" "$0}' >> ${piholeDir}/${accretionDisc}
|
cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$IPv4addr" '{sub(/\r$/,""); print ipv4addr" "$0}' >> ${piholeDir}/${accretionDisc}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Copy the file over as /etc/pihole/gravity.list so dnsmasq can use it
|
# Copy the file over as /etc/pihole/gravity.list so dnsmasq can use it
|
||||||
|
@ -301,7 +289,7 @@ function gravity_advanced() {
|
||||||
# This helps with that and makes it easier to read
|
# This helps with that and makes it easier to read
|
||||||
# It also helps with debugging so each stage of the script can be researched more in depth
|
# It also helps with debugging so each stage of the script can be researched more in depth
|
||||||
echo -n "::: Formatting list of domains to remove comments...."
|
echo -n "::: Formatting list of domains to remove comments...."
|
||||||
awk '($1 !~ /^#/) { if (NF>1) {print $2} else {print $1}}' ${piholeDir}/${matterandlight} | sed -nr -e 's/\.{2,}/./g' -e '/\./p' > ${piholeDir}/${supernova}
|
awk '($1 !~ /^#/) { if (NF>1) {print $2} else {print $1}}' ${piholeDir}/${matterAndLight} | sed -nr -e 's/\.{2,}/./g' -e '/\./p' > ${piholeDir}/${supernova}
|
||||||
echo " done!"
|
echo " done!"
|
||||||
|
|
||||||
numberOf=$(wc -l < ${piholeDir}/${supernova})
|
numberOf=$(wc -l < ${piholeDir}/${supernova})
|
||||||
|
@ -349,14 +337,13 @@ do
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
#Overwrite adlists.default from /etc/.pihole in case any changes have been made. Changes should be saved in /etc/adlists.list
|
|
||||||
|
|
||||||
if [[ ${forceGrav} == true ]]; then
|
if [[ ${forceGrav} == true ]]; then
|
||||||
echo -n "::: Deleting exising list cache..."
|
echo -n "::: Deleting exising list cache..."
|
||||||
${SUDO} rm /etc/pihole/list.*
|
${SUDO} rm /etc/pihole/list.*
|
||||||
echo " done!"
|
echo " done!"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#Overwrite adlists.default from /etc/.pihole in case any changes have been made. Changes should be saved in /etc/adlists.list
|
||||||
${SUDO} cp /etc/.pihole/adlists.default /etc/pihole/adlists.default
|
${SUDO} cp /etc/.pihole/adlists.default /etc/pihole/adlists.default
|
||||||
gravity_collapse
|
gravity_collapse
|
||||||
gravity_spinup
|
gravity_spinup
|
||||||
|
|
64
pihole
64
pihole
|
@ -47,16 +47,60 @@ function flushFunc {
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateDashboardFunc {
|
|
||||||
${SUDO} /opt/pihole/updateDashboard.sh
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function updatePiholeFunc {
|
function updatePiholeFunc {
|
||||||
echo "::: Fetching latest changes from Github..."
|
echo "::: Checking for updates..."
|
||||||
cd /etc/.pihole
|
piholeVersion=$(cd /etc/.pihole/ && git describe --tags --abbrev=0)
|
||||||
${SUDO} git pull
|
piholeVersionLatest=$(curl -s https://api.github.com/repos/pi-hole/pi-hole/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | perl -pe 's/"tag_name": "//; s/^"//; s/",$//')
|
||||||
${SUDO} /etc/.pihole/automated\ install/basic-install.sh pihole
|
|
||||||
|
webVersion=$(cd /var/www/html/admin/ && git describe --tags --abbrev=0)
|
||||||
|
webVersionLatest=$(curl -s https://api.github.com/repos/pi-hole/AdminLTE/releases/latest | grep -Po '"tag_name":.*?[^\\]",' | perl -pe 's/"tag_name": "//; s/^"//; s/",$//')
|
||||||
|
|
||||||
|
echo "::: Pi-hole version is $piholeVersion (Latest version is $piholeVersionLatest)"
|
||||||
|
echo "::: Web Admin version is $webVersion (Latest version is $webVersionLatest)"
|
||||||
|
echo ":::"
|
||||||
|
|
||||||
|
if [[ ${piholeVersion} == ${piholeVersionLatest} ]] ; then
|
||||||
|
echo "::: Pi-hole Base files are already up to date! Version: ${piholeVersionLatest}"
|
||||||
|
echo "::: No need to update!"
|
||||||
|
echo ":::"
|
||||||
|
|
||||||
|
if [[ ${webVersion} == ${webVersionLatest} ]] ; then
|
||||||
|
echo "::: Web Admin files are already up to date!"
|
||||||
|
echo "::: No need to update!"
|
||||||
|
echo ":::"
|
||||||
|
else
|
||||||
|
echo "::: An Update is available for the Web Admin!"
|
||||||
|
echo ":::"
|
||||||
|
echo "::: Fetching latest changes from GitHub..."
|
||||||
|
cd /var/www/html/admin
|
||||||
|
${SUDO} git pull origin master
|
||||||
|
echo ":::"
|
||||||
|
echo "::: Pi-hole Web Admin has been updated to ${webVersion}"
|
||||||
|
echo "::: See https://changes.pi-hole.net for details"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo -n "::: An update is available for "
|
||||||
|
if [[ ${webVersion} == ${webVersionLatest} ]] ; then
|
||||||
|
echo " Pi-Hole!"
|
||||||
|
else
|
||||||
|
echo " Pi-Hole base files and the Web Admin. Both will be updated!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "::: Fetching latest changes from GitHub..."
|
||||||
|
cd /etc/.pihole
|
||||||
|
${SUDO} git pull origin master
|
||||||
|
${SUDO} /etc/.pihole/automated\ install/basic-install.sh pihole
|
||||||
|
|
||||||
|
echo ":::"
|
||||||
|
echo "::: Pi-hole has been updated to version ${piholeVersionLatest}"
|
||||||
|
if [[ ${webVersion} != ${webVersionLatest} ]] ; then
|
||||||
|
echo "::: Web Admin has been updated to version ${webVersionLatest}"
|
||||||
|
fi
|
||||||
|
echo ":::"
|
||||||
|
echo "::: See https://changes.pi-hole.net for details"
|
||||||
|
fi
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -112,8 +156,7 @@ function helpFunc {
|
||||||
echo "::: -b, blacklist Blacklist domains"
|
echo "::: -b, blacklist Blacklist domains"
|
||||||
echo "::: -d, debug Start a debugging session if having trouble"
|
echo "::: -d, debug Start a debugging session if having trouble"
|
||||||
echo "::: -f, flush Flush the pihole.log file"
|
echo "::: -f, flush Flush the pihole.log file"
|
||||||
echo "::: -ud, updateDashboard Update the web dashboard manually"
|
echo "::: -up, updatePihole Update Pi-hole"
|
||||||
echo "::: -up, updatePihole Update Pi-hole"
|
|
||||||
echo "::: -g, updateGravity Update the list of ad-serving domains"
|
echo "::: -g, updateGravity Update the list of ad-serving domains"
|
||||||
echo "::: -s, setupLCD Automatically configures the Pi to use the 2.8 LCD screen to display stats on it"
|
echo "::: -s, setupLCD Automatically configures the Pi to use the 2.8 LCD screen to display stats on it"
|
||||||
echo "::: -c, chronometer Calculates stats and displays to an LCD"
|
echo "::: -c, chronometer Calculates stats and displays to an LCD"
|
||||||
|
@ -134,7 +177,6 @@ case "$1" in
|
||||||
"-b" | "blacklist" ) blacklistFunc "$@";;
|
"-b" | "blacklist" ) blacklistFunc "$@";;
|
||||||
"-d" | "debug" ) debugFunc;;
|
"-d" | "debug" ) debugFunc;;
|
||||||
"-f" | "flush" ) flushFunc;;
|
"-f" | "flush" ) flushFunc;;
|
||||||
"-ud" | "updateDashboard" ) updateDashboardFunc;;
|
|
||||||
"-up" | "updatePihole" ) updatePiholeFunc;;
|
"-up" | "updatePihole" ) updatePiholeFunc;;
|
||||||
"-g" | "updateGravity" ) updateGravityFunc "$@";;
|
"-g" | "updateGravity" ) updateGravityFunc "$@";;
|
||||||
"-s" | "setupLCD" ) setupLCDFunction;;
|
"-s" | "setupLCD" ) setupLCDFunction;;
|
||||||
|
|
Loading…
Reference in a new issue