Compare commits

...

31 Commits

Author SHA1 Message Date
Adam Warner
3853997295 Merge pull request #451 from pi-hole/development
Development of Next release
2016-04-11 12:54:15 +01:00
Adam Warner
76899c9ac5 Merge pull request #459 from pi-hole/BugFix409
remove all mentions of spinner
2016-04-11 12:41:42 +01:00
Adam Warner
99a5b3a98a remove all mentions of spinner 2016-04-11 11:29:14 +01:00
Adam Warner
219aff9a93 Merge pull request #457 from pi-hole/BigFix453
Fix whitespace
2016-04-10 21:44:26 +01:00
Promofaux
b6e1b3bff0 Last one, promise! tabs are behaving strangely here... 2016-04-10 21:43:12 +01:00
Promofaux
1ce888e828 more whitespace fixes...... 2016-04-10 21:41:46 +01:00
Promofaux
1c10a801dc Fix whitespace... 2016-04-10 21:39:44 +01:00
Promofaux
48fa83c9ac Fix whitespace 2016-04-10 21:36:33 +01:00
Adam Warner
31ea3a2757 Merge pull request #456 from pi-hole/BigFix453
Fixes issue #453
2016-04-10 21:20:46 +01:00
Promofaux
05e0003555 Fixes issue #453 2016-04-10 21:17:58 +01:00
Adam Warner
01f53f6d6c Merge pull request #450 from pi-hole/SmallFixesToWhitelistBlacklist
Small fixes to whitelist blacklist
2016-04-08 23:03:30 +01:00
Promofaux
107e0404de Move exit 1 outside of if block on verbose check to stop dnsmasq reloading 2016-04-08 23:01:13 +01:00
Promofaux
ab99e80333 indent 2016-04-08 23:00:46 +01:00
Promofaux
3154a378a6 Remove clear in DisplayWlist and force verbose to false to tidy up output. 2016-04-08 20:12:30 +01:00
Promofaux
8e04f1c03e Remove clear in DisplayBlist and forse verbose to false to tidy up output. 2016-04-08 20:11:39 +01:00
Promofaux
c0aadeab3d fix spelling in name of variable ($versbose -> $verbose) 2016-04-08 20:10:27 +01:00
Promofaux
6c87698f1a fix spelling in name of variable ($versbose -> $verbose) 2016-04-08 20:10:10 +01:00
Adam Warner
db2e9f8bf3 Merge pull request #447 from 7h3ju57/issue#442
Add list option to blacklist and whitelist
2016-04-08 20:07:24 +01:00
Justin Theberge
9a4c5cef86 fix indentations 2016-04-08 10:14:17 -04:00
Justin Theberge
bdfc86f850 fix formatting 2016-04-07 21:58:57 -04:00
Justin Theberge
70dadfba28 add list options requested from issue#442 2016-04-07 21:52:47 -04:00
Adam Warner
01e1e34874 Merge pull request #441 from pi-hole/development
Pihole v2.6.1.2. Closes #439
2016-04-06 09:44:04 +01:00
Adam Warner
28a3cbfa87 Merge pull request #440 from pi-hole/Bugfix439
fixes #439
2016-04-06 09:42:07 +01:00
Adam Warner
0b480c2d3f remove redundant else, add ! to if logic. 2016-04-06 09:36:41 +01:00
Adam Warner
391dea445a Move help output to function, add -h argument 2016-04-06 09:34:05 +01:00
Adam Warner
e074c72130 Move help output to function helpFunc, add -h argument. 2016-04-06 09:32:36 +01:00
Adam Warner
96f3f863e5 Clean up output. Commented out un-needed root/sudo notification 2016-04-06 09:28:24 +01:00
Adam Warner
3877f6fd94 Fix arguments not being passed through to chronometer.sh 2016-04-06 09:27:46 +01:00
Adam Warner
cbbc6df05a Merge pull request #425 from PiHoleController
Fixes spacing issues in whiptail dialogs
2016-04-05 22:26:02 +01:00
nate
834bf30a10 Merged branch development into PiHoleController 2016-04-03 18:05:19 -05:00
nate
22ea384ac8 Fix whiptail spacing 2016-04-03 18:05:11 -05:00
6 changed files with 127 additions and 98 deletions

View File

@@ -11,16 +11,7 @@
# (at your option) any later version.
if [[ $# = 0 ]]; then
echo "::: Immediately blacklists one or more domains in the hosts file"
echo ":::"
echo "::: Usage: sudo pihole.sh -b domain1 [domain2 ...]"
echo ":::"
echo "::: Options:"
echo "::: -d, --delmode Remove domains from the blacklist"
echo "::: -nr, --noreload Update blacklist without refreshing dnsmasq"
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
echo "::: -q, --quiet output is less verbose"
exit 1
helpFunc
fi
#globals
@@ -31,7 +22,7 @@ blacklist=$piholeDir/blacklist.txt
reload=true
addmode=true
force=false
versbose=true
verbose=true
domList=()
domToRemoveList=()
@@ -58,6 +49,22 @@ if [[ -f $piholeIPv6file ]];then
fi
function helpFunc()
{
echo "::: Immediately blacklists one or more domains in the hosts file"
echo ":::"
echo ":::"
echo "::: Usage: sudo pihole -b domain1 [domain2 ...]"
echo "::: Options:"
echo "::: -d, --delmode Remove domains from the blacklist"
echo "::: -nr, --noreload Update blacklist without refreshing dnsmasq"
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
echo "::: -q, --quiet output is less verbose"
echo "::: -h, --help Show this help dialog"
echo "::: -l, --list Display your blacklisted domains"
exit 1
}
function HandleOther(){
#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/')
@@ -88,14 +95,14 @@ function AddDomain(){
grep -Ex -q "$1" $blacklist || bool=true
if $bool; then
#domain not found in the blacklist file, add it!
if $versbose; then
if $verbose; then
echo -n "::: Adding $1 to blacklist file..."
fi
echo "$1" >> $blacklist
modifyHost=true
echo " done!"
else
if $versbose; then
if $verbose; then
echo "::: $1 already exists in $blacklist! No need to add"
fi
fi
@@ -107,12 +114,12 @@ function RemoveDomain(){
grep -Ex -q "$1" $blacklist || bool=true
if $bool; then
#Domain is not in the blacklist file, no need to Remove
if $versbose; then
if $verbose; then
echo "::: $1 is NOT blacklisted! No need to remove"
fi
else
#Domain is in the blacklist file, add to a temporary array
if $versbose; then
if $verbose; then
echo "::: Un-blacklisting $dom..."
fi
domToRemoveList=("${domToRemoveList[@]}" $1)
@@ -167,6 +174,17 @@ function Reload() {
echo " done!"
}
function DisplayBlist() {
verbose=false
echo -e " Displaying Gravity Affected Domains \n"
count=1
while IFS= read -r AD
do
echo "${count}: $AD"
count=$((count+1))
done < "$blacklist"
}
###################################################
for var in "$@"
@@ -175,7 +193,9 @@ do
"-nr"| "--noreload" ) reload=false;;
"-d" | "--delmode" ) addmode=false;;
"-f" | "--force" ) force=true;;
"-q" | "--quiet" ) versbose=false;;
"-q" | "--quiet" ) verbose=false;;
"-h" | "--help" ) helpFunc;;
"-l" | "--list" ) DisplayBlist;;
* ) HandleOther "$var";;
esac
done
@@ -185,7 +205,7 @@ PopBlacklistFile
if $modifyHost || $force; then
ModifyHostFile
else
if $versbose; then
if $verbose; then
echo "::: No changes need to be made"
fi
exit 1

View File

@@ -120,7 +120,7 @@ function normalChrono(){
function displayHelp(){
echo "::: Displays stats about your piHole!"
echo ":::"
echo "::: Usage: sudo pihole.sh -c [optional:-j]"
echo "::: Usage: sudo pihole -c [optional:-j]"
echo "::: Note: If no option is passed, then stats are displayed on screen, updated every 5 seconds"
echo ":::"
echo "::: Options:"

View File

@@ -11,16 +11,7 @@
# (at your option) any later version.
if [[ $# = 0 ]]; then
echo "::: Immediately whitelists one or more domains in the hosts file"
echo ":::"
echo "::: Usage: sudo pihole.sh -w domain1 [domain2 ...]"
echo ":::"
echo "::: Options:"
echo "::: -d, --delmode Remove domains from the whitelist"
echo "::: -nr, --noreload Update Whitelist without refreshing dnsmasq"
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
echo "::: -q, --quiet output is less verbose"
exit 1
helpFunc
fi
#globals
@@ -31,7 +22,7 @@ whitelist=$piholeDir/whitelist.txt
reload=true
addmode=true
force=false
versbose=true
verbose=true
domList=()
domToRemoveList=()
@@ -57,6 +48,22 @@ if [[ -f $piholeIPv6file ]];then
fi
function helpFunc()
{
echo "::: Immediately whitelists one or more domains in the hosts file"
echo ":::"
echo "::: Usage: sudo pihole -w domain1 [domain2 ...]"
echo ":::"
echo "::: Options:"
echo "::: -d, --delmode Remove domains from the whitelist"
echo "::: -nr, --noreload Update Whitelist without refreshing dnsmasq"
echo "::: -f, --force Force updating of the hosts files, even if there are no changes"
echo "::: -q, --quiet output is less verbose"
echo "::: -h, --help Show this help dialog"
echo "::: -l, --list Display your whitelisted domains"
exit 1
}
function HandleOther(){
#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/')
@@ -89,16 +96,16 @@ function AddDomain(){
grep -Ex -q "$1" $whitelist || bool=true
if $bool; then
#domain not found in the whitelist file, add it!
if $versbose; then
if $verbose; then
echo -n "::: Adding $1 to $whitelist..."
fi
echo "$1" >> $whitelist
modifyHost=true
if $versbose; then
if $verbose; then
echo " done!"
fi
else
if $versbose; then
if $verbose; then
echo "::: $1 already exists in $whitelist, no need to add!"
fi
fi
@@ -110,12 +117,12 @@ function RemoveDomain(){
grep -Ex -q "$1" $whitelist || bool=true
if $bool; then
#Domain is not in the whitelist file, no need to Remove
if $versbose; then
if $verbose; then
echo "::: $1 is NOT whitelisted! No need to remove"
fi
else
#Domain is in the whitelist file, add to a temporary array and remove from whitelist file
#if $versbose; then
#if $verbose; then
#echo "::: Un-whitelisting $dom..."
#fi
domToRemoveList=("${domToRemoveList[@]}" $1)
@@ -180,6 +187,17 @@ function Reload() {
echo " done!"
}
function DisplayWlist() {
verbose=false
echo -e " Displaying Gravity Resistant Domains \n"
count=1
while IFS= read -r RD
do
echo "${count}: $RD"
count=$((count+1))
done < "$whitelist"
}
###################################################
for var in "$@"
@@ -188,7 +206,9 @@ do
"-nr"| "--noreload" ) reload=false;;
"-d" | "--delmode" ) addmode=false;;
"-f" | "--force" ) force=true;;
"-q" | "--quiet" ) versbose=false;;
"-q" | "--quiet" ) verbose=false;;
"-h" | "--help" ) helpFunc;;
"-l" | "--list" ) DisplayWlist;;
* ) HandleOther "$var";;
esac
done
@@ -198,11 +218,11 @@ PopWhitelistFile
if $modifyHost || $force; then
ModifyHostFile
else
if $versbose; then
if $verbose; then
echo ":::"
echo "::: No changes need to be made"
exit 1
fi
exit 1
fi
if $reload; then

View File

@@ -110,6 +110,7 @@ welcomeDialogs() {
# Explain the need for a static address
whiptail --msgbox --backtitle "Initating network interface" --title "Static IP Needed" "The Pi-hole is a SERVER so it needs a STATIC IP ADDRESS to function properly.
In the next section, you can choose to use your current network settings (DHCP) or to manually edit them." $r $c
}
@@ -174,7 +175,7 @@ cleanupIPv6() {
use4andor6() {
# Let use select IPv4 and/or IPv6
cmd=(whiptail --separate-output --checklist "Select Protocols" $r $c 2)
cmd=(whiptail --separate-output --checklist "Select Protocols (press space to select)" $r $c 2)
options=(IPv4 "Block ads over IPv4" on
IPv6 "Block ads over IPv6" off)
choices=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty)
@@ -695,8 +696,8 @@ displayFinalMessage() {
# Final completion message to user
whiptail --msgbox --backtitle "Make it so." --title "Installation Complete!" "Configure your devices to use the Pi-hole as their DNS server using:
$IPv4addr
$piholeIPv6
IPv4: $IPv4addr
IPv6: $piholeIPv6
If you set a new IP address, you should restart the Pi.

View File

@@ -12,6 +12,7 @@
# Run this script as root or under sudo
echo ":::"
if [[ $EUID -eq 0 ]];then
echo "::: You are root."
else
@@ -71,20 +72,6 @@ if [[ -r $piholeDir/pihole.conf ]];then
. $piholeDir/pihole.conf
fi
spinner() {
local pid=$1
local delay=0.50
local spinstr='/-|'
while [ "$(ps a | awk '{print $1}' | grep "$pid")" ]; do
local temp=${spinstr#?}
printf " [%c] " "$spinstr"
local spinstr=$temp${spinstr%"$temp"}
sleep $delay
printf "\b\b\b\b\b\b"
done
printf " \b\b\b\b"
}
###########################
# collapse - begin formation of pihole
function gravity_collapse() {
@@ -214,7 +201,7 @@ function gravity_Schwarzchild() {
echo "::: "
# Find all active domains and compile them into one file and remove CRs
echo -n "::: Aggregating list of domains..."
truncate -s 0 $piholeDir/$matterandlight & spinner $!
truncate -s 0 $piholeDir/$matterandlight
for i in "${activeDomains[@]}"
do
cat "$i" | tr -d '\r' >> $piholeDir/$matterandlight
@@ -225,7 +212,7 @@ function gravity_Schwarzchild() {
function gravity_Blacklist(){
# Append blacklist entries if they exist
echo -n "::: Running blacklist script to update HOSTS file...."
$blacklistScript -f -nr -q > /dev/null & spinner $!
$blacklistScript -f -nr -q > /dev/null
numBlacklisted=$(wc -l < "/etc/pihole/blacklist.txt")
plural=; [[ "$numBlacklisted" != "1" ]] && plural=s
@@ -247,7 +234,7 @@ function gravity_Whitelist() {
echo " done!"
echo -n "::: Running whitelist script to update HOSTS file...."
$whitelistScript -f -nr -q "${urls[@]}" > /dev/null & spinner $!
$whitelistScript -f -nr -q "${urls[@]}" > /dev/null
numWhitelisted=$(wc -l < "/etc/pihole/whitelist.txt")
plural=; [[ "$numWhitelisted" != "1" ]] && plural=s
echo " $numWhitelisted domain${plural} whitelisted!"
@@ -256,7 +243,7 @@ function gravity_Whitelist() {
function gravity_unique() {
# Sort and remove duplicates
echo -n "::: Removing duplicate domains...."
sort -u $piholeDir/$supernova > $piholeDir/$eventHorizon & spinner $!
sort -u $piholeDir/$supernova > $piholeDir/$eventHorizon
echo " done!"
numberOf=$(wc -l < $piholeDir/$eventHorizon)
echo "::: $numberOf unique domains trapped in the event horizon."
@@ -302,7 +289,7 @@ function gravity_advanced() {
# 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
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 & spinner $!
awk '($1 !~ /^#/) { if (NF>1) {print $2} else {print $1}}' $piholeDir/$matterandlight | sed -nr -e 's/\.{2,}/./g' -e '/\./p' > $piholeDir/$supernova
echo " done!"
numberOf=$(wc -l < $piholeDir/$supernova)
@@ -329,14 +316,14 @@ function gravity_reload() {
$SUDO sed -i "s/^addn-hosts.*/addn-hosts=$adList/" /etc/dnsmasq.d/01-pihole.conf
dnsmasqPid=$(pidof dnsmasq)
find "$piholeDir" -type f -exec $SUDO chmod 666 {} \; & spinner $!
find "$piholeDir" -type f -exec $SUDO chmod 666 {} \;
if [[ $dnsmasqPid ]]; then
# service already running - reload config
$SUDO kill -HUP "$dnsmasqPid" & spinner $!
$SUDO kill -HUP "$dnsmasqPid"
else
# service not running, start it up
$SUDO service dnsmasq start & spinner $!
$SUDO service dnsmasq start
fi
echo " done!"
}

17
pihole
View File

@@ -11,10 +11,10 @@
# (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."
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
@@ -63,7 +63,8 @@ function setupLCDFunction {
}
function chronometerFunc {
$SUDO /opt/pihole/chronometer.sh
shift
$SUDO /opt/pihole/chronometer.sh "$@"
exit 1
}
@@ -76,8 +77,8 @@ function uninstallFunc {
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 "::: Usage: pihole [options]"
echo "::: Add -h after -w (whitelist), -b (blacklist), or -c (chronometer) for more information on usage"
echo ":::"
echo "::: Options:"
echo "::: -w, whitelist Whitelist domains"
@@ -106,7 +107,7 @@ case "$1" in
"-u" | "updateDashboard" ) updateDashboardFunc;;
"-g" | "updateGravity" ) updateGravityFunc;;
"-s" | "setupLCD" ) setupLCDFunction;;
"-c" | "chronometer" ) chronometerFunc;;
"-c" | "chronometer" ) chronometerFunc "$@";;
"-h" | "help" ) helpFunc;;
"uninstall" ) uninstallFunc;;
* ) helpFunc;;