mirror of
https://github.com/pi-hole/pi-hole
synced 2024-12-23 15:28:07 +00:00
Merge pull request #416 from pi-hole/PiHoleController
Add in Pi hole controller
This commit is contained in:
commit
dbb40e1dda
@ -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: blacklist.sh domain1 [domain2 ...]"
|
echo "::: Usage: sudo pihole.sh -b 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=$("$piLog" | grep "$today" | awk '/query/ {print $6}' | wc -l)
|
queriesToday=$(cat "$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=$($piLog | awk '/\/etc\/pihole\/gravity.list/ && !/address/ {print $6}' | wc -l)
|
blockedToday=$(cat $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: chronometer.sh [optional:-j]"
|
echo "::: Usage: sudo pihole.sh -c [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,4 +10,6 @@
|
|||||||
# 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: whitelist.sh domain1 [domain2 ...]"
|
echo "::: Usage: sudo pihole.sh -w 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
|
||||||
|
|
||||||
|
12
advanced/bash-completion/pihole
Normal file
12
advanced/bash-completion/pihole
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
_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
|
@ -69,7 +69,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"
|
||||||
@ -93,7 +93,7 @@ backupLegacyPihole() {
|
|||||||
if [ ! -d /opt/pihole ]; then
|
if [ ! -d /opt/pihole ]; then
|
||||||
$SUDO mkdir /opt/pihole
|
$SUDO mkdir /opt/pihole
|
||||||
$SUDO chown "$USER":root /opt/pihole
|
$SUDO chown "$USER":root /opt/pihole
|
||||||
$SUDO chmod 1766 /opt/pihole
|
$SUDO chmod u+srwx /opt/pihole
|
||||||
fi
|
fi
|
||||||
$SUDO mv /opt/pihole/gravity.sh /etc/pihole/original/gravity.sh."$(date "+%Y-%m-%d")"
|
$SUDO mv /opt/pihole/gravity.sh /etc/pihole/original/gravity.sh."$(date "+%Y-%m-%d")"
|
||||||
else
|
else
|
||||||
@ -118,9 +118,9 @@ verifyFreeDiskSpace() {
|
|||||||
# 50MB is the minimum space needed (45MB install (includes web admin bootstrap/jquery libraries etc) + 5MB one day of logs.)
|
# 50MB is the minimum space needed (45MB install (includes web admin bootstrap/jquery libraries etc) + 5MB one day of logs.)
|
||||||
requiredFreeBytes=51200
|
requiredFreeBytes=51200
|
||||||
|
|
||||||
existingFreeBytes=`df -lk / 2>&1 | awk '{print $4}' | head -2 | tail -1`
|
existingFreeBytes=$(df -lk / 2>&1 | awk '{print $4}' | head -2 | tail -1)
|
||||||
if ! [[ "$existingFreeBytes" =~ ^([0-9])+$ ]]; then
|
if ! [[ "$existingFreeBytes" =~ ^([0-9])+$ ]]; then
|
||||||
existingFreeBytes=`df -lk /dev 2>&1 | awk '{print $4}' | head -2 | tail -1`
|
existingFreeBytes=$(df -lk /dev 2>&1 | awk '{print $4}' | head -2 | tail -1)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $existingFreeBytes -lt $requiredFreeBytes ]]; then
|
if [[ $existingFreeBytes -lt $requiredFreeBytes ]]; then
|
||||||
@ -482,11 +482,21 @@ installScripts() {
|
|||||||
$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/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 chmod 755 /opt/pihole/{gravity,chronometer,whitelist,blacklist,piholeLogFlush,updateDashboard,uninstall}.sh
|
$SUDO cp /etc/.pihole/advanced/Scripts/setupLCD.sh /opt/pihole/setupLCD.sh
|
||||||
for f in /opt/pihole/*; do
|
$SUDO chmod 755 /opt/pihole/{gravity,chronometer,whitelist,blacklist,piholeLogFlush,updateDashboard,uninstall,setupLCD}.sh
|
||||||
filename=${f##*/}
|
$SUDO cp /etc/.pihole/pihole /usr/local/bin/pihole
|
||||||
$SUDO ln -s /opt/pihole/"$filename" /usr/local/bin/"$filename"
|
$SUDO chmod 755 /usr/local/bin/pihole
|
||||||
|
$SUDO cp /etc/.pihole/advanced/bash-completion/pihole /etc/bash_completion.d/pihole
|
||||||
|
. /etc/bash_completion.d/pihole
|
||||||
|
|
||||||
|
#Tidy up /usr/local/bin directory if installing over previous install.
|
||||||
|
oldFiles=( gravity chronometer whitelist blacklist piholeLogFlush updateDashboard uninstall setupLCD piholeDebug)
|
||||||
|
for i in "${oldFiles[@]}"; do
|
||||||
|
if [ -f "/usr/local/bin/$i.sh" ]; then
|
||||||
|
$SUDO rm /usr/local/bin/"$i".sh
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
$SUDO echo " done."
|
$SUDO echo " done."
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -548,9 +558,7 @@ checkForDependencies() {
|
|||||||
echo "::: Checking dependencies:"
|
echo "::: Checking dependencies:"
|
||||||
|
|
||||||
dependencies=( dnsutils bc toilet figlet dnsmasq lighttpd php5-common php5-cgi php5 git curl unzip wget )
|
dependencies=( dnsutils bc toilet figlet dnsmasq lighttpd php5-common php5-cgi php5 git curl unzip wget )
|
||||||
for i in "${dependencies[@]}"
|
for i in "${dependencies[@]}"; do
|
||||||
do
|
|
||||||
:
|
|
||||||
echo -n "::: Checking for $i..."
|
echo -n "::: Checking for $i..."
|
||||||
if [ "$(dpkg-query -W -f='${Status}' "$i" 2>/dev/null | grep -c "ok installed")" -eq 0 ]; then
|
if [ "$(dpkg-query -W -f='${Status}' "$i" 2>/dev/null | grep -c "ok installed")" -eq 0 ]; then
|
||||||
echo -n " Not found! Installing...."
|
echo -n " Not found! Installing...."
|
||||||
@ -657,10 +665,8 @@ runGravity() {
|
|||||||
echo "::: Cleaning up previous install (preserving whitelist/blacklist)"
|
echo "::: Cleaning up previous install (preserving whitelist/blacklist)"
|
||||||
$SUDO rm /etc/pihole/list.*
|
$SUDO rm /etc/pihole/list.*
|
||||||
fi
|
fi
|
||||||
#Don't run as SUDO, this was causing issues
|
|
||||||
echo "::: Running gravity.sh"
|
echo "::: Running gravity.sh"
|
||||||
|
$SUDO /opt/pihole/gravity.sh
|
||||||
/usr/local/bin/gravity.sh
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setUser(){
|
setUser(){
|
||||||
@ -681,7 +687,7 @@ installPihole() {
|
|||||||
setUser
|
setUser
|
||||||
$SUDO mkdir -p /etc/pihole/
|
$SUDO mkdir -p /etc/pihole/
|
||||||
if [ ! -d "/var/www/html" ]; then
|
if [ ! -d "/var/www/html" ]; then
|
||||||
$SUDO mkdir /var/www/html
|
$SUDO mkdir -p /var/www/html
|
||||||
fi
|
fi
|
||||||
$SUDO chown www-data:www-data /var/www/html
|
$SUDO chown www-data:www-data /var/www/html
|
||||||
$SUDO chmod 775 /var/www/html
|
$SUDO chmod 775 /var/www/html
|
||||||
|
@ -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"
|
||||||
@ -115,20 +115,14 @@ function removeNoPurge {
|
|||||||
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=/usr/local/bin/whitelist.sh
|
whitelistScript=/opt/pihole/whitelist.sh
|
||||||
blacklistScript=/usr/local/bin/blacklist.sh
|
blacklistScript=/opt/pihole/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
|
||||||
$SUDO chmod 777 $piholeDir
|
find "$piholeDir" -type f -exec $SUDO chmod 666 {} \; & spinner $!
|
||||||
$SUDO chown root:root $piholeDir
|
echo ":::"
|
||||||
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 /etc/pihole/pihole.*
|
$SUDO rm $piholeDir/pihole.*.txt
|
||||||
echo " done!"
|
echo " done!"
|
||||||
|
|
||||||
# Reload hosts file
|
# Reload hosts file
|
||||||
|
113
pihole
Executable file
113
pihole
Executable file
@ -0,0 +1,113 @@
|
|||||||
|
#!/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 New Issue
Block a user