mirror of
https://github.com/pi-hole/pi-hole.git
synced 2024-12-01 02:23:21 +00:00
Revert "Pi hole controller"
This commit is contained in:
parent
dbb40e1dda
commit
3fd3ce6295
9 changed files with 510 additions and 637 deletions
|
@ -11,15 +11,15 @@
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
|
|
||||||
if [[ $# = 0 ]]; then
|
if [[ $# = 0 ]]; then
|
||||||
echo "::: Immediately blacklists one or more domains in the hosts file"
|
echo "Immediately blacklists one or more domains in the hosts file"
|
||||||
echo ":::"
|
echo " "
|
||||||
echo "::: Usage: sudo pihole.sh -b domain1 [domain2 ...]"
|
echo "Usage: blacklist.sh domain1 [domain2 ...]"
|
||||||
echo ":::"
|
echo " "
|
||||||
echo "::: Options:"
|
echo "Options:"
|
||||||
echo "::: -d, --delmode Remove domains from the blacklist"
|
echo " -d, --delmode Remove domains from the blacklist"
|
||||||
echo "::: -nr, --noreload Update blacklist without refreshing dnsmasq"
|
echo " -nr, --noreload Update blacklist without refreshing dnsmasq"
|
||||||
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
|
echo " -f, --force Force updating of the hosts files, even if there are no changes"
|
||||||
echo "::: -q, --quiet output is less verbose"
|
echo " -q, --quiet output is less verbose"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ function HandleOther(){
|
||||||
#check validity of domain
|
#check validity of domain
|
||||||
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/')
|
||||||
if [ -z "$validDomain" ]; then
|
if [ -z "$validDomain" ]; then
|
||||||
echo "::: $1 is not a valid argument or domain name"
|
echo "$1" is not a valid argument or domain name
|
||||||
else
|
else
|
||||||
domList=("${domList[@]}" $validDomain)
|
domList=("${domList[@]}" $validDomain)
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -35,7 +35,7 @@ function CalcBlockedDomains(){
|
||||||
|
|
||||||
function CalcQueriesToday(){
|
function CalcQueriesToday(){
|
||||||
if [ -e "$piLog" ];then
|
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
|
else
|
||||||
queriesToday="Err."
|
queriesToday="Err."
|
||||||
fi
|
fi
|
||||||
|
@ -43,7 +43,7 @@ function CalcQueriesToday(){
|
||||||
|
|
||||||
function CalcblockedToday(){
|
function CalcblockedToday(){
|
||||||
if [ -e "$piLog" ] && [ -e "$gravity" ];then
|
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
|
else
|
||||||
blockedToday="Err."
|
blockedToday="Err."
|
||||||
fi
|
fi
|
||||||
|
@ -118,14 +118,14 @@ function normalChrono(){
|
||||||
}
|
}
|
||||||
|
|
||||||
function displayHelp(){
|
function displayHelp(){
|
||||||
echo "::: Displays stats about your piHole!"
|
echo "Displays stats about your piHole!"
|
||||||
echo ":::"
|
echo " "
|
||||||
echo "::: Usage: sudo pihole.sh -c [optional:-j]"
|
echo "Usage: chronometer.sh [optional:-j]"
|
||||||
echo "::: Note: If no option is passed, then stats are displayed on screen, updated every 5 seconds"
|
echo "Note: If no option is passed, then stats are displayed on screen, updated every 5 seconds"
|
||||||
echo ":::"
|
echo " "
|
||||||
echo "::: Options:"
|
echo "Options:"
|
||||||
echo "::: -j, --json output stats as JSON formatted string"
|
echo " -j, --json output stats as JSON formatted string"
|
||||||
echo "::: -h, --help display this help text"
|
echo " -h, --help display this help text"
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,4 @@
|
||||||
# the Free Software Foundation, either version 2 of the License, or
|
# the Free Software Foundation, either version 2 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
|
|
||||||
echo -n "::: Flushing /var/log/pihole.log ..."
|
|
||||||
truncate -s 0 /var/log/pihole.log
|
truncate -s 0 /var/log/pihole.log
|
||||||
echo "... done!"
|
|
||||||
|
|
|
@ -11,15 +11,15 @@
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
|
|
||||||
if [[ $# = 0 ]]; then
|
if [[ $# = 0 ]]; then
|
||||||
echo "::: Immediately whitelists one or more domains in the hosts file"
|
echo "Immediately whitelists one or more domains in the hosts file"
|
||||||
echo ":::"
|
echo " "
|
||||||
echo "::: Usage: sudo pihole.sh -w domain1 [domain2 ...]"
|
echo "Usage: whitelist.sh domain1 [domain2 ...]"
|
||||||
echo ":::"
|
echo " "
|
||||||
echo "::: Options:"
|
echo "Options:"
|
||||||
echo "::: -d, --delmode Remove domains from the whitelist"
|
echo " -d, --delmode Remove domains from the whitelist"
|
||||||
echo "::: -nr, --noreload Update Whitelist without refreshing dnsmasq"
|
echo " -nr, --noreload Update Whitelist without refreshing dnsmasq"
|
||||||
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
|
echo " -f, --force Force updating of the hosts files, even if there are no changes"
|
||||||
echo "::: -q, --quiet output is less verbose"
|
echo " -q, --quiet output is less verbose"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
_pihole()
|
|
||||||
{
|
|
||||||
local cur prev opts
|
|
||||||
COMPREPLY=()
|
|
||||||
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
||||||
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
|
||||||
opts="whitelist blacklist debug flush updateDashboard updateGravity setupLCD chronometer uninstall help"
|
|
||||||
|
|
||||||
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
complete -F _pihole pihole
|
|
File diff suppressed because it is too large
Load diff
|
@ -29,7 +29,7 @@ spinner()
|
||||||
{
|
{
|
||||||
local pid=$1
|
local pid=$1
|
||||||
local delay=0.50
|
local delay=0.50
|
||||||
local spinstr='/-\|'
|
local spinstr='|/-\'
|
||||||
while [ "$(ps a | awk '{print $1}' | grep "$pid")" ]; do
|
while [ "$(ps a | awk '{print $1}' | grep "$pid")" ]; do
|
||||||
local temp=${spinstr#?}
|
local temp=${spinstr#?}
|
||||||
printf " [%c] " "$spinstr"
|
printf " [%c] " "$spinstr"
|
||||||
|
@ -114,15 +114,21 @@ function removeNoPurge {
|
||||||
$SUDO mv /etc/lighttpd/lighttpd.conf.orig /etc/lighttpd/lighttpd.conf
|
$SUDO mv /etc/lighttpd/lighttpd.conf.orig /etc/lighttpd/lighttpd.conf
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
$SUDO rm /usr/local/bin/gravity.sh &> /dev/null
|
||||||
|
$SUDO rm /usr/local/bin/chronometer.sh &> /dev/null
|
||||||
|
$SUDO rm /usr/local/bin/whitelist.sh &> /dev/null
|
||||||
|
$SUDO rm /usr/local/bin/blacklist.sh &> /dev/null
|
||||||
|
$SUDO rm /usr/local/bin/piholeLogFlush.sh &> /dev/null
|
||||||
|
$SUDO rm /usr/local/bin/piholeDebug.sh &> /dev/null
|
||||||
|
$SUDO rm /usr/local/bin/updateDashboard.sh &> /dev/null
|
||||||
|
$SUDO rm /usr/local/bin/uninstall.sh &> /dev/null
|
||||||
$SUDO rm /etc/dnsmasq.d/adList.conf &> /dev/null
|
$SUDO rm /etc/dnsmasq.d/adList.conf &> /dev/null
|
||||||
$SUDO rm /etc/dnsmasq.d/01-pihole.conf &> /dev/null
|
$SUDO rm /etc/dnsmasq.d/01-pihole.conf &> /dev/null
|
||||||
$SUDO rm -rf /var/log/*pihole* &> /dev/null
|
$SUDO rm -rf /var/log/*pihole* &> /dev/null
|
||||||
$SUDO rm -rf /etc/pihole/ &> /dev/null
|
$SUDO rm -rf /etc/pihole/ &> /dev/null
|
||||||
$SUDO rm -rf /etc/.pihole/ &> /dev/null
|
$SUDO rm -rf /etc/.pihole/ &> /dev/null
|
||||||
$SUDO rm -rf /opt/pihole/ &> /dev/null
|
$SUDO rm -rf /opt/pihole/ &> /dev/null
|
||||||
$SUDO rm /usr/local/bin/pihole &> /dev/null
|
|
||||||
$SUDO rm /etc/bash_completion.d/pihole
|
|
||||||
|
|
||||||
echo ":::"
|
echo ":::"
|
||||||
printf "::: Finished removing PiHole from your system. Sorry to see you go!\n"
|
printf "::: Finished removing PiHole from your system. Sorry to see you go!\n"
|
||||||
|
|
14
gravity.sh
14
gravity.sh
|
@ -31,8 +31,8 @@ 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=/usr/local/bin/whitelist.sh
|
||||||
blacklistScript=/opt/pihole/blacklist.sh
|
blacklistScript=/usr/local/bin/blacklist.sh
|
||||||
|
|
||||||
if [[ -f $piholeIPfile ]];then
|
if [[ -f $piholeIPfile ]];then
|
||||||
# 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
|
# 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
|
||||||
|
@ -74,7 +74,7 @@ fi
|
||||||
spinner() {
|
spinner() {
|
||||||
local pid=$1
|
local pid=$1
|
||||||
local delay=0.50
|
local delay=0.50
|
||||||
local spinstr='/-|'
|
local spinstr='|/-\'
|
||||||
while [ "$(ps a | awk '{print $1}' | grep "$pid")" ]; do
|
while [ "$(ps a | awk '{print $1}' | grep "$pid")" ]; do
|
||||||
local temp=${spinstr#?}
|
local temp=${spinstr#?}
|
||||||
printf " [%c] " "$spinstr"
|
printf " [%c] " "$spinstr"
|
||||||
|
@ -124,12 +124,12 @@ function gravity_collapse() {
|
||||||
# Temporary hack to allow non-root access to pihole directory
|
# Temporary hack to allow non-root access to pihole directory
|
||||||
# Will update later, needed for existing installs, new installs should
|
# Will update later, needed for existing installs, new installs should
|
||||||
# create this directory as non-root
|
# create this directory as non-root
|
||||||
find "$piholeDir" -type f -exec $SUDO chmod 666 {} \; & spinner $!
|
$SUDO chmod 777 $piholeDir
|
||||||
echo ":::"
|
$SUDO chown root:root $piholeDir
|
||||||
|
echo "..."
|
||||||
else
|
else
|
||||||
echo -n "::: Creating pihole directory..."
|
echo -n "::: Creating pihole directory..."
|
||||||
mkdir $piholeDir & spinner $!
|
mkdir $piholeDir & spinner $!
|
||||||
$SUDO chmod 777 $piholeDir
|
|
||||||
echo " done!"
|
echo " done!"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -315,7 +315,7 @@ function gravity_reload() {
|
||||||
#Clear no longer needed files...
|
#Clear no longer needed files...
|
||||||
echo ":::"
|
echo ":::"
|
||||||
echo -n "::: Cleaning up un-needed files..."
|
echo -n "::: Cleaning up un-needed files..."
|
||||||
$SUDO rm $piholeDir/pihole.*.txt
|
$SUDO rm /etc/pihole/pihole.*
|
||||||
echo " done!"
|
echo " done!"
|
||||||
|
|
||||||
# Reload hosts file
|
# Reload hosts file
|
||||||
|
|
113
pihole
113
pihole
|
@ -1,113 +0,0 @@
|
||||||
#!/bin/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
|
|
||||||
# Controller for all pihole scripts and functions.
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
|
|
||||||
# Must be root to use this tool
|
|
||||||
if [[ $EUID -eq 0 ]];then
|
|
||||||
echo "::: You are root."
|
|
||||||
else
|
|
||||||
echo "::: Sudo will be used for this tool."
|
|
||||||
# Check if it is actually installed
|
|
||||||
# If it isn't, exit because the pihole cannot be invoked without privileges.
|
|
||||||
if [[ $(dpkg-query -s sudo) ]];then
|
|
||||||
export SUDO="sudo"
|
|
||||||
else
|
|
||||||
echo "::: Please install sudo or run this as root."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
function whitelistFunc {
|
|
||||||
shift
|
|
||||||
$SUDO /opt/pihole/whitelist.sh "$@"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function blacklistFunc {
|
|
||||||
shift
|
|
||||||
$SUDO /opt/pihole/blacklist.sh "$@"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function debugFunc {
|
|
||||||
$SUDO /opt/pihole/piholeDebug.sh
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function flushFunc {
|
|
||||||
$SUDO /opt/pihole/piholeLogFlush.sh
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateDashboardFunc {
|
|
||||||
$SUDO /opt/pihole/updateDashboard.sh
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateGravityFunc {
|
|
||||||
$SUDO /opt/pihole/gravity.sh
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function setupLCDFunction {
|
|
||||||
$SUDO /opt/pihole/setupLCD.sh
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function chronometerFunc {
|
|
||||||
$SUDO /opt/pihole/chronometer.sh
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function uninstallFunc {
|
|
||||||
$SUDO /opt/pihole/uninstall.sh
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
function helpFunc {
|
|
||||||
echo "::: Control all PiHole specific functions!"
|
|
||||||
echo ":::"
|
|
||||||
echo "::: Usage: pihole.sh [options]"
|
|
||||||
printf ":::\tAdd -h after -w (whitelist), -b (blacklist), or -c (chronometer) for more information on usage\n"
|
|
||||||
echo ":::"
|
|
||||||
echo "::: Options:"
|
|
||||||
echo "::: -w, whitelist Whitelist domains"
|
|
||||||
echo "::: -b, blacklist Blacklist domains"
|
|
||||||
echo "::: -d, debug Start a debugging session if having trouble"
|
|
||||||
echo "::: -f, flush Flush the pihole.log file"
|
|
||||||
echo "::: -u, updateDashboard Update the web dashboard manually"
|
|
||||||
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 "::: -c, chronometer Calculates stats and displays to an LCD"
|
|
||||||
echo "::: -h, help Show this help dialog"
|
|
||||||
echo "::: uninstall Uninstall Pi-Hole from your system!"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
if [[ $# = 0 ]]; then
|
|
||||||
helpFunc
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Handle redirecting to specific functions based on arguments
|
|
||||||
case "$1" in
|
|
||||||
"-w" | "whitelist" ) whitelistFunc "$@";;
|
|
||||||
"-b" | "blacklist" ) blacklistFunc "$@";;
|
|
||||||
"-d" | "debug" ) debugFunc;;
|
|
||||||
"-f" | "flush" ) flushFunc;;
|
|
||||||
"-u" | "updateDashboard" ) updateDashboardFunc;;
|
|
||||||
"-g" | "updateGravity" ) updateGravityFunc;;
|
|
||||||
"-s" | "setupLCD" ) setupLCDFunction;;
|
|
||||||
"-c" | "chronometer" ) chronometerFunc;;
|
|
||||||
"-h" | "help" ) helpFunc;;
|
|
||||||
"uninstall" ) uninstallFunc;;
|
|
||||||
* ) helpFunc;;
|
|
||||||
esac
|
|
Loading…
Reference in a new issue