From b3e7619048fb8e88b90b79c2056e361f1c2e5387 Mon Sep 17 00:00:00 2001 From: Promofaux Date: Sun, 21 Aug 2016 02:12:02 +0100 Subject: [PATCH] curly brackets all the variables! --- advanced/Scripts/blacklist.sh | 68 ++++----- advanced/Scripts/chronometer.sh | 6 +- advanced/Scripts/piholeDebug.sh | 228 ++++++++++++++-------------- advanced/Scripts/setupLCD.sh | 30 ++-- advanced/Scripts/updateDashboard.sh | 2 +- advanced/Scripts/whitelist.sh | 80 +++++----- automated install/uninstall.sh | 60 ++++---- 7 files changed, 237 insertions(+), 237 deletions(-) diff --git a/advanced/Scripts/blacklist.sh b/advanced/Scripts/blacklist.sh index d83ca867..a289a9a5 100755 --- a/advanced/Scripts/blacklist.sh +++ b/advanced/Scripts/blacklist.sh @@ -47,9 +47,9 @@ fi #globals basename=pihole -piholeDir=/etc/$basename -adList=$piholeDir/gravity.list -blacklist=$piholeDir/blacklist.txt +piholeDir=/etc/${basename} +adList=${piholeDir}/gravity.list +blacklist=${piholeDir}/blacklist.txt reload=true addmode=true force=false @@ -61,9 +61,9 @@ domToRemoveList=() piholeIPfile=/etc/pihole/piholeIP piholeIPv6file=/etc/pihole/.useIPv6 -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 - piholeIP=$(cat $piholeIPfile) + piholeIP=$(cat ${piholeIPfile}) #rm $piholeIPfile 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 @@ -75,13 +75,13 @@ fi modifyHost=false # After setting defaults, check if there's local overrides -if [[ -r $piholeDir/pihole.conf ]];then +if [[ -r ${piholeDir}/pihole.conf ]];then echo "::: Local calibration requested..." - . $piholeDir/pihole.conf + . ${piholeDir}/pihole.conf fi -if [[ -f $piholeIPv6file ]];then +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 @@ -92,14 +92,14 @@ function HandleOther(){ if [ -z "$validDomain" ]; then echo "::: $1 is not a valid argument or domain name" else - domList=("${domList[@]}" $validDomain) + domList=("${domList[@]}" ${validDomain}) fi } function PopBlacklistFile(){ #check blacklist file exists, and if not, create it - if [[ ! -f $blacklist ]];then - touch $blacklist + if [[ ! -f ${blacklist} ]];then + touch ${blacklist} fi for dom in "${domList[@]}"; do if "$addmode"; then @@ -113,17 +113,17 @@ function PopBlacklistFile(){ function AddDomain(){ #| sed 's/\./\\./g' bool=false - grep -Ex -q "$1" $blacklist || bool=true - if $bool; then + grep -Ex -q "$1" ${blacklist} || bool=true + if ${bool}; then #domain not found in the blacklist file, add it! - if $verbose; then + if ${verbose}; then echo -n "::: Adding $1 to blacklist file..." fi - echo "$1" >> $blacklist + echo "$1" >> ${blacklist} modifyHost=true echo " done!" else - if $verbose; then + if ${verbose}; then echo "::: $1 already exists in $blacklist! No need to add" fi fi @@ -132,15 +132,15 @@ function AddDomain(){ function RemoveDomain(){ bool=false - grep -Ex -q "$1" $blacklist || bool=true - if $bool; then + grep -Ex -q "$1" ${blacklist} || bool=true + if ${bool}; then #Domain is not in the blacklist file, no need to Remove - if $verbose; 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 $verbose; then + if ${verbose}; then echo "::: Un-blacklisting $dom..." fi domToRemoveList=("${domToRemoveList[@]}" $1) @@ -149,17 +149,17 @@ function RemoveDomain(){ } function ModifyHostFile(){ - if $addmode; then + if ${addmode}; then #add domains to the hosts file - if [[ -r $blacklist ]];then - numberOf=$(cat $blacklist | sed '/^\s*$/d' | wc -l) + if [[ -r ${blacklist} ]];then + numberOf=$(cat ${blacklist} | sed '/^\s*$/d' | wc -l) plural=; [[ "$numberOf" != "1" ]] && plural=s echo ":::" 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 + if [[ -n ${piholeIPv6} ]];then + cat ${blacklist} | awk -v ipv4addr="$piholeIP" -v ipv6addr="$piholeIPv6" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> ${adList} else - cat $blacklist | awk -v ipv4addr="$piholeIP" '{sub(/\r$/,""); print ipv4addr" "$0}' >>$adList + cat ${blacklist} | awk -v ipv4addr="$piholeIP" '{sub(/\r$/,""); print ipv4addr" "$0}' >>${adList} fi fi else @@ -169,10 +169,10 @@ function ModifyHostFile(){ #we need to remove the domains from the blacklist file and the host file echo "::: $dom" echo -n "::: removing from HOSTS file..." - 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} 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 @@ -185,12 +185,12 @@ function Reload() { dnsmasqPid=$(pidof dnsmasq) - if [[ $dnsmasqPid ]]; then + if [[ ${dnsmasqPid} ]]; then # service already running - reload config - $SUDO killall -s HUP dnsmasq + ${SUDO} killall -s HUP dnsmasq else # service not running, start it up - $SUDO service dnsmasq start + ${SUDO} service dnsmasq start fi echo " done!" } @@ -223,15 +223,15 @@ done PopBlacklistFile -if $modifyHost || $force; then +if ${modifyHost} || ${force}; then ModifyHostFile else - if $verbose; then + if ${verbose}; then echo "::: No changes need to be made" fi exit 1 fi -if $reload; then +if ${reload}; then Reload fi diff --git a/advanced/Scripts/chronometer.sh b/advanced/Scripts/chronometer.sh index 806093e1..eae7cf1c 100755 --- a/advanced/Scripts/chronometer.sh +++ b/advanced/Scripts/chronometer.sh @@ -21,7 +21,7 @@ function CalcBlockedDomains(){ CheckIPv6 if [ -e "$gravity" ]; then #Are we IPV6 or IPV4? - if [[ -n $piholeIPv6 ]];then + if [[ -n ${piholeIPv6} ]];then #We are IPV6 blockedDomainsTotal=$(wc -l /etc/pihole/gravity.list | awk '{print $1/2}') else @@ -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=$(cat ${piLog} | awk '/\/etc\/pihole\/gravity.list/ && !/address/ {print $6}' | wc -l) else blockedToday="Err." fi @@ -63,7 +63,7 @@ function CalcPercentBlockedToday(){ function CheckIPv6(){ piholeIPv6file="/etc/pihole/.useIPv6" - if [[ -f $piholeIPv6file ]];then + 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 diff --git a/advanced/Scripts/piholeDebug.sh b/advanced/Scripts/piholeDebug.sh index ec08c984..e2e59244 100755 --- a/advanced/Scripts/piholeDebug.sh +++ b/advanced/Scripts/piholeDebug.sh @@ -43,75 +43,75 @@ fi # Ensure the file exists, create if not, clear if exists. if [ ! -f "$DEBUG_LOG" ]; then - $SUDO touch $DEBUG_LOG - $SUDO chmod 644 $DEBUG_LOG - $SUDO chown "$USER":root $DEBUG_LOG + ${SUDO} touch ${DEBUG_LOG} + ${SUDO} chmod 644 ${DEBUG_LOG} + ${SUDO} chown "$USER":root ${DEBUG_LOG} else - truncate -s 0 $DEBUG_LOG + truncate -s 0 ${DEBUG_LOG} fi ### Private functions exist here ### function versionCheck { - echo "#######################################" >> $DEBUG_LOG - echo "########## Versions Section ###########" >> $DEBUG_LOG - echo "#######################################" >> $DEBUG_LOG + echo "#######################################" >> ${DEBUG_LOG} + echo "########## Versions Section ###########" >> ${DEBUG_LOG} + echo "#######################################" >> ${DEBUG_LOG} TMP=$(cd /etc/.pihole/ && git describe --tags --abbrev=0) - echo "Pi-hole Version: $TMP" >> $DEBUG_LOG + echo "Pi-hole Version: $TMP" >> ${DEBUG_LOG} TMP=$(cd /var/www/html/admin && git describe --tags --abbrev=0) - echo "WebUI Version: $TMP" >> $DEBUG_LOG - echo >> $DEBUG_LOG + echo "WebUI Version: $TMP" >> ${DEBUG_LOG} + echo >> ${DEBUG_LOG} } function distroCheck { - echo "#######################################" >> $DEBUG_LOG - echo "######## Distribution Section #########" >> $DEBUG_LOG - echo "#######################################" >> $DEBUG_LOG + echo "#######################################" >> ${DEBUG_LOG} + echo "######## Distribution Section #########" >> ${DEBUG_LOG} + echo "#######################################" >> ${DEBUG_LOG} TMP=$(cat /etc/*release || echo "Failed to find release") - echo "Distribution Version: $TMP" >> $DEBUG_LOG + echo "Distribution Version: $TMP" >> ${DEBUG_LOG} } function compareWhitelist { if [ ! -f "$WHITELISTMATCHES" ]; then - $SUDO touch $WHITELISTMATCHES - $SUDO chmod 644 $WHITELISTMATCHES - $SUDO chown "$USER":root $WHITELISTMATCHES + ${SUDO} touch ${WHITELISTMATCHES} + ${SUDO} chmod 644 ${WHITELISTMATCHES} + ${SUDO} chown "$USER":root ${WHITELISTMATCHES} else - truncate -s 0 $WHITELISTMATCHES + truncate -s 0 ${WHITELISTMATCHES} fi - echo "#######################################" >> $DEBUG_LOG - echo "######## Whitelist Comparison #########" >> $DEBUG_LOG - echo "#######################################" >> $DEBUG_LOG + echo "#######################################" >> ${DEBUG_LOG} + echo "######## Whitelist Comparison #########" >> ${DEBUG_LOG} + echo "#######################################" >> ${DEBUG_LOG} while read -r line; do TMP=$(grep -w ".* $line$" "$GRAVITYFILE") if [ ! -z "$TMP" ]; then - echo "$TMP" >> $DEBUG_LOG - echo "$TMP" >> $WHITELISTMATCHES + echo "$TMP" >> ${DEBUG_LOG} + echo "$TMP" >> ${WHITELISTMATCHES} fi done < "$WHITELISTFILE" - echo >> $DEBUG_LOG + echo >> ${DEBUG_LOG} } function compareBlacklist { - echo "#######################################" >> $DEBUG_LOG - echo "######## Blacklist Comparison #########" >> $DEBUG_LOG - echo "#######################################" >> $DEBUG_LOG + echo "#######################################" >> ${DEBUG_LOG} + echo "######## Blacklist Comparison #########" >> ${DEBUG_LOG} + echo "#######################################" >> ${DEBUG_LOG} while read -r line; do if [ ! -z "$line" ]; then - grep -w ".* $line$" "$GRAVITYFILE" >> $DEBUG_LOG + grep -w ".* $line$" "$GRAVITYFILE" >> ${DEBUG_LOG} fi done < "$BLACKLISTFILE" - echo >> $DEBUG_LOG + echo >> ${DEBUG_LOG} } function testNslookup { TESTURL="doubleclick.com" - echo "#######################################" >> $DEBUG_LOG - echo "############ NSLookup Test ############" >> $DEBUG_LOG - echo "#######################################" >> $DEBUG_LOG + echo "#######################################" >> ${DEBUG_LOG} + echo "############ NSLookup Test ############" >> ${DEBUG_LOG} + echo "#######################################" >> ${DEBUG_LOG} # Find a blocked url that has not been whitelisted. if [ -s "$WHITELISTMATCHES" ]; then while read -r line; do @@ -128,77 +128,77 @@ function testNslookup { done < "$GRAVITYFILE" fi - echo "NSLOOKUP of $TESTURL from PiHole:" >> $DEBUG_LOG - nslookup "$TESTURL" >> $DEBUG_LOG - echo >> $DEBUG_LOG - echo "NSLOOKUP of $TESTURL from 8.8.8.8:" >> $DEBUG_LOG - nslookup "$TESTURL" 8.8.8.8 >> $DEBUG_LOG - echo >> $DEBUG_LOG + echo "NSLOOKUP of $TESTURL from PiHole:" >> ${DEBUG_LOG} + nslookup "$TESTURL" >> ${DEBUG_LOG} + echo >> ${DEBUG_LOG} + echo "NSLOOKUP of $TESTURL from 8.8.8.8:" >> ${DEBUG_LOG} + nslookup "$TESTURL" 8.8.8.8 >> ${DEBUG_LOG} + echo >> ${DEBUG_LOG} } function checkProcesses { - echo "#######################################" >> $DEBUG_LOG - echo "########### Processes Check ###########" >> $DEBUG_LOG - echo "#######################################" >> $DEBUG_LOG + echo "#######################################" >> ${DEBUG_LOG} + echo "########### Processes Check ###########" >> ${DEBUG_LOG} + echo "#######################################" >> ${DEBUG_LOG} echo ":::" echo "::: Logging status of lighttpd and dnsmasq..." PROCESSES=( lighttpd dnsmasq ) for i in "${PROCESSES[@]}" do - echo "" >> $DEBUG_LOG + echo "" >> ${DEBUG_LOG} echo -n "$i" >> "$DEBUG_LOG" - echo " processes status:" >> $DEBUG_LOG - $SUDO systemctl -l status "$i" >> "$DEBUG_LOG" + echo " processes status:" >> ${DEBUG_LOG} + ${SUDO} systemctl -l status "$i" >> "$DEBUG_LOG" done } function debugLighttpd { echo "::: Writing lighttpd to debug log..." - echo "#######################################" >> $DEBUG_LOG - echo "############ lighttpd.conf ############" >> $DEBUG_LOG - echo "#######################################" >> $DEBUG_LOG + echo "#######################################" >> ${DEBUG_LOG} + echo "############ lighttpd.conf ############" >> ${DEBUG_LOG} + echo "#######################################" >> ${DEBUG_LOG} if [ -e "$LIGHTTPDFILE" ] then while read -r line; do if [ ! -z "$line" ]; then [[ "$line" =~ ^#.*$ ]] && continue - echo "$line" >> $DEBUG_LOG + echo "$line" >> ${DEBUG_LOG} fi done < "$LIGHTTPDFILE" - echo >> $DEBUG_LOG + echo >> ${DEBUG_LOG} else - echo "No lighttpd.conf file found!" >> $DEBUG_LOG + echo "No lighttpd.conf file found!" >> ${DEBUG_LOG} printf ":::\tNo lighttpd.conf file found\n" fi if [ -e "$LIGHTTPDERRFILE" ] then - echo "#######################################" >> $DEBUG_LOG - echo "######### lighttpd error.log ##########" >> $DEBUG_LOG - echo "#######################################" >> $DEBUG_LOG - cat "$LIGHTTPDERRFILE" >> $DEBUG_LOG + echo "#######################################" >> ${DEBUG_LOG} + echo "######### lighttpd error.log ##########" >> ${DEBUG_LOG} + echo "#######################################" >> ${DEBUG_LOG} + cat "$LIGHTTPDERRFILE" >> ${DEBUG_LOG} else - echo "No lighttpd error.log file found!" >> $DEBUG_LOG + echo "No lighttpd error.log file found!" >> ${DEBUG_LOG} printf ":::\tNo lighttpd error.log file found\n" fi - echo >> $DEBUG_LOG + echo >> ${DEBUG_LOG} } ### END FUNCTIONS ### ### Check Pi internet connections ### # Log the IP addresses of this Pi -IPADDR=$($SUDO ifconfig | perl -nle 's/dr:(\S+)/print $1/e') +IPADDR=$(${SUDO} ifconfig | perl -nle 's/dr:(\S+)/print $1/e') echo "::: Writing local IPs to debug log" -echo "IP Addresses of this Pi:" >> $DEBUG_LOG -echo "$IPADDR" >> $DEBUG_LOG -echo >> $DEBUG_LOG +echo "IP Addresses of this Pi:" >> ${DEBUG_LOG} +echo "$IPADDR" >> ${DEBUG_LOG} +echo >> ${DEBUG_LOG} # Check if we can connect to the local gateway GATEWAY_CHECK=$(ping -q -w 1 -c 1 "$(ip r | grep default | cut -d ' ' -f 3)" > /dev/null && echo ok || echo error) -echo "Gateway check:" >> $DEBUG_LOG -echo "$GATEWAY_CHECK" >> $DEBUG_LOG -echo >> $DEBUG_LOG +echo "Gateway check:" >> ${DEBUG_LOG} +echo "$GATEWAY_CHECK" >> ${DEBUG_LOG} +echo >> ${DEBUG_LOG} versionCheck distroCheck @@ -209,109 +209,109 @@ checkProcesses debugLighttpd echo "::: Writing dnsmasq.conf to debug log..." -echo "#######################################" >> $DEBUG_LOG -echo "############### Dnsmasq ###############" >> $DEBUG_LOG -echo "#######################################" >> $DEBUG_LOG +echo "#######################################" >> ${DEBUG_LOG} +echo "############### Dnsmasq ###############" >> ${DEBUG_LOG} +echo "#######################################" >> ${DEBUG_LOG} if [ -e "$DNSMASQFILE" ] then #cat $DNSMASQFILE >> $DEBUG_LOG while read -r line; do if [ ! -z "$line" ]; then [[ "$line" =~ ^#.*$ ]] && continue - echo "$line" >> $DEBUG_LOG + echo "$line" >> ${DEBUG_LOG} fi done < "$DNSMASQFILE" - echo >> $DEBUG_LOG + echo >> ${DEBUG_LOG} else - echo "No dnsmasq.conf file found!" >> $DEBUG_LOG + echo "No dnsmasq.conf file found!" >> ${DEBUG_LOG} printf ":::\tNo dnsmasq.conf file found!\n" fi echo "::: Writing 01-pihole.conf to debug log..." -echo "#######################################" >> $DEBUG_LOG -echo "########### 01-pihole.conf ############" >> $DEBUG_LOG -echo "#######################################" >> $DEBUG_LOG +echo "#######################################" >> ${DEBUG_LOG} +echo "########### 01-pihole.conf ############" >> ${DEBUG_LOG} +echo "#######################################" >> ${DEBUG_LOG} if [ -e "$PIHOLECONFFILE" ] then while read -r line; do if [ ! -z "$line" ]; then [[ "$line" =~ ^#.*$ ]] && continue - echo "$line" >> $DEBUG_LOG + echo "$line" >> ${DEBUG_LOG} fi done < "$PIHOLECONFFILE" - echo >> $DEBUG_LOG + echo >> ${DEBUG_LOG} else - echo "No 01-pihole.conf file found!" >> $DEBUG_LOG + echo "No 01-pihole.conf file found!" >> ${DEBUG_LOG} printf ":::\tNo 01-pihole.conf file found\n" fi echo "::: Writing size of gravity.list to debug log..." -echo "#######################################" >> $DEBUG_LOG -echo "############ gravity.list #############" >> $DEBUG_LOG -echo "#######################################" >> $DEBUG_LOG +echo "#######################################" >> ${DEBUG_LOG} +echo "############ gravity.list #############" >> ${DEBUG_LOG} +echo "#######################################" >> ${DEBUG_LOG} if [ -e "$GRAVITYFILE" ] then - wc -l "$GRAVITYFILE" >> $DEBUG_LOG - echo >> $DEBUG_LOG + wc -l "$GRAVITYFILE" >> ${DEBUG_LOG} + echo >> ${DEBUG_LOG} else - echo "No gravity.list file found!" >> $DEBUG_LOG + echo "No gravity.list file found!" >> ${DEBUG_LOG} printf ":::\tNo gravity.list file found\n" fi # Write the hostname output to compare against entries in /etc/hosts, which is logged next -echo "Hostname of this pihole is: " >> $DEBUG_LOG -hostname >> $DEBUG_LOG +echo "Hostname of this pihole is: " >> ${DEBUG_LOG} +hostname >> ${DEBUG_LOG} echo "::: Writing hosts file to debug log..." -echo "#######################################" >> $DEBUG_LOG -echo "################ Hosts ################" >> $DEBUG_LOG -echo "#######################################" >> $DEBUG_LOG +echo "#######################################" >> ${DEBUG_LOG} +echo "################ Hosts ################" >> ${DEBUG_LOG} +echo "#######################################" >> ${DEBUG_LOG} if [ -e "$HOSTSFILE" ] then - cat "$HOSTSFILE" >> $DEBUG_LOG - echo >> $DEBUG_LOG + cat "$HOSTSFILE" >> ${DEBUG_LOG} + echo >> ${DEBUG_LOG} else - echo "No hosts file found!" >> $DEBUG_LOG + echo "No hosts file found!" >> ${DEBUG_LOG} printf ":::\tNo hosts file found!\n" fi ### PiHole application specific logging ### echo "::: Writing whitelist to debug log..." -echo "#######################################" >> $DEBUG_LOG -echo "############## Whitelist ##############" >> $DEBUG_LOG -echo "#######################################" >> $DEBUG_LOG +echo "#######################################" >> ${DEBUG_LOG} +echo "############## Whitelist ##############" >> ${DEBUG_LOG} +echo "#######################################" >> ${DEBUG_LOG} if [ -e "$WHITELISTFILE" ] then - cat "$WHITELISTFILE" >> $DEBUG_LOG - echo >> $DEBUG_LOG + cat "$WHITELISTFILE" >> ${DEBUG_LOG} + echo >> ${DEBUG_LOG} else - echo "No whitelist.txt file found!" >> $DEBUG_LOG + echo "No whitelist.txt file found!" >> ${DEBUG_LOG} printf ":::\tNo whitelist.txt file found!\n" fi echo "::: Writing blacklist to debug log..." -echo "#######################################" >> $DEBUG_LOG -echo "############## Blacklist ##############" >> $DEBUG_LOG -echo "#######################################" >> $DEBUG_LOG +echo "#######################################" >> ${DEBUG_LOG} +echo "############## Blacklist ##############" >> ${DEBUG_LOG} +echo "#######################################" >> ${DEBUG_LOG} if [ -e "$BLACKLISTFILE" ] then - cat "$BLACKLISTFILE" >> $DEBUG_LOG - echo >> $DEBUG_LOG + cat "$BLACKLISTFILE" >> ${DEBUG_LOG} + echo >> ${DEBUG_LOG} else - echo "No blacklist.txt file found!" >> $DEBUG_LOG + echo "No blacklist.txt file found!" >> ${DEBUG_LOG} printf ":::\tNo blacklist.txt file found!\n" fi echo "::: Writing adlists.list to debug log..." -echo "#######################################" >> $DEBUG_LOG -echo "############ adlists.list #############" >> $DEBUG_LOG -echo "#######################################" >> $DEBUG_LOG +echo "#######################################" >> ${DEBUG_LOG} +echo "############ adlists.list #############" >> ${DEBUG_LOG} +echo "#######################################" >> ${DEBUG_LOG} if [ -e "$ADLISTSFILE" ] then - cat "$ADLISTSFILE" >> $DEBUG_LOG - echo >> $DEBUG_LOG + cat "$ADLISTSFILE" >> ${DEBUG_LOG} + echo >> ${DEBUG_LOG} else - echo "No adlists.list file found... using adlists.default!" >> $DEBUG_LOG + echo "No adlists.list file found... using adlists.default!" >> ${DEBUG_LOG} printf ":::\tNo adlists.list file found... using adlists.default!\n" fi @@ -320,17 +320,17 @@ fi function dumpPiHoleLog { trap '{ echo -e "\n::: Finishing debug write from interrupt... Quitting!" ; exit 1; }' INT echo -e "::: Writing current pihole traffic to debug log...\n:::\tTry loading any/all sites that you are having trouble with now... \n:::\t(Press ctrl+C to finish)" - echo "#######################################" >> $DEBUG_LOG - echo "############# pihole.log ##############" >> $DEBUG_LOG - echo "#######################################" >> $DEBUG_LOG + echo "#######################################" >> ${DEBUG_LOG} + echo "############# pihole.log ##############" >> ${DEBUG_LOG} + echo "#######################################" >> ${DEBUG_LOG} if [ -e "$PIHOLELOG" ] then while true; do - tail -f "$PIHOLELOG" >> $DEBUG_LOG - echo >> $DEBUG_LOG + tail -f "$PIHOLELOG" >> ${DEBUG_LOG} + echo >> ${DEBUG_LOG} done else - echo "No pihole.log file found!" >> $DEBUG_LOG + echo "No pihole.log file found!" >> ${DEBUG_LOG} printf ":::\tNo pihole.log file found!\n" fi } @@ -340,7 +340,7 @@ function finalWork { echo "::: Finshed debugging!" echo "::: The degug log can be uploaded to Termbin.com for easier sharing." read -r -p "::: Would you like to upload the log? [y/N] " response - case $response in + case ${response} in [yY][eE][sS]|[yY]) TERMBIN=$(cat /var/log/pihole_debug.log | nc termbin.com 9999) ;; diff --git a/advanced/Scripts/setupLCD.sh b/advanced/Scripts/setupLCD.sh index 03be4e0a..c77f1f4a 100755 --- a/advanced/Scripts/setupLCD.sh +++ b/advanced/Scripts/setupLCD.sh @@ -44,12 +44,12 @@ getInitSys() { # https://github.com/adafruit/Adafruit-PiTFT-Helper/blob/master/adafruit-pitft-helper#L274-L285 autoLoginPiToConsole() { if [ -e /etc/init.d/lightdm ]; then - if [ $SYSTEMD -eq 1 ]; then - $SUDO systemctl set-default multi-user.target - $SUDO ln -fs /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service + if [ ${SYSTEMD} -eq 1 ]; then + ${SUDO} systemctl set-default multi-user.target + ${SUDO} ln -fs /etc/systemd/system/autologin@.service /etc/systemd/system/getty.target.wants/getty@tty1.service else - $SUDO update-rc.d lightdm disable 2 - $SUDO sed /etc/inittab -i -e "s/1:2345:respawn:\/sbin\/getty --noclear 38400 tty1/1:2345:respawn:\/bin\/login -f pi tty1 <\/dev\/tty1 >\/dev\/tty1 2>&1/" + ${SUDO} update-rc.d lightdm disable 2 + ${SUDO} sed /etc/inittab -i -e "s/1:2345:respawn:\/sbin\/getty --noclear 38400 tty1/1:2345:respawn:\/bin\/login -f pi tty1 <\/dev\/tty1 >\/dev\/tty1 2>&1/" fi fi } @@ -66,23 +66,23 @@ echo /usr/local/bin/chronometer.sh >> /home/pi/.bashrc # Set up the LCD screen based on Adafruits instuctions: # https://learn.adafruit.com/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi/easy-install -curl -SLs https://apt.adafruit.com/add-pin | $SUDO bash -$SUDO apt-get -y install raspberrypi-bootloader -$SUDO apt-get -y install adafruit-pitft-helper -$SUDO adafruit-pitft-helper -t 28r +curl -SLs https://apt.adafruit.com/add-pin | ${SUDO} bash +${SUDO} apt-get -y install raspberrypi-bootloader +${SUDO} apt-get -y install adafruit-pitft-helper +${SUDO} adafruit-pitft-helper -t 28r # Download the cmdline.txt file that prevents the screen from going blank after a period of time -$SUDO mv /boot/cmdline.txt /boot/cmdline.orig -$SUDO curl -o /boot/cmdline.txt https://raw.githubusercontent.com/pi-hole/pi-hole/master/advanced/cmdline.txt +${SUDO} mv /boot/cmdline.txt /boot/cmdline.orig +${SUDO} curl -o /boot/cmdline.txt https://raw.githubusercontent.com/pi-hole/pi-hole/master/advanced/cmdline.txt # Back up the original file and download the new one -$SUDO mv /etc/default/console-setup /etc/default/console-setup.orig -$SUDO curl -o /etc/default/console-setup https://raw.githubusercontent.com/pi-hole/pi-hole/master/advanced/console-setup +${SUDO} mv /etc/default/console-setup /etc/default/console-setup.orig +${SUDO} curl -o /etc/default/console-setup https://raw.githubusercontent.com/pi-hole/pi-hole/master/advanced/console-setup # Instantly apply the font change to the LCD screen -$SUDO setupcon +${SUDO} setupcon -$SUDO reboot +${SUDO} reboot # Start showing the stats on the screen by running the command on another tty: # http://unix.stackexchange.com/questions/170063/start-a-process-on-a-different-tty diff --git a/advanced/Scripts/updateDashboard.sh b/advanced/Scripts/updateDashboard.sh index 6955683d..991089c2 100755 --- a/advanced/Scripts/updateDashboard.sh +++ b/advanced/Scripts/updateDashboard.sh @@ -55,7 +55,7 @@ is_repo() { # 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 + rm -rf ${WEB_INTERFACE_DIR} git clone "$WEB_INTERFACE_GIT_URL" "$WEB_INTERFACE_DIR" } diff --git a/advanced/Scripts/whitelist.sh b/advanced/Scripts/whitelist.sh index 5195aa83..75d62173 100755 --- a/advanced/Scripts/whitelist.sh +++ b/advanced/Scripts/whitelist.sh @@ -47,9 +47,9 @@ fi #globals basename=pihole -piholeDir=/etc/$basename -adList=$piholeDir/gravity.list -whitelist=$piholeDir/whitelist.txt +piholeDir=/etc/${basename} +adList=${piholeDir}/gravity.list +whitelist=${piholeDir}/whitelist.txt reload=true addmode=true force=false @@ -61,9 +61,9 @@ domToRemoveList=() piholeIPfile=/etc/pihole/piholeIP piholeIPv6file=/etc/pihole/.useIPv6 -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 - piholeIP=$(cat $piholeIPfile) + piholeIP=$(cat ${piholeIPfile}) #rm $piholeIPfile 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 @@ -75,12 +75,12 @@ fi modifyHost=false # After setting defaults, check if there's local overrides -if [[ -r $piholeDir/pihole.conf ]];then +if [[ -r ${piholeDir}/pihole.conf ]];then echo "::: Local calibration requested..." - . $piholeDir/pihole.conf + . ${piholeDir}/pihole.conf fi -if [[ -f $piholeIPv6file ]];then +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 @@ -91,18 +91,18 @@ function HandleOther(){ if [ -z "$validDomain" ]; then echo "::: $1 is not a valid argument or domain name" else - domList=("${domList[@]}" $validDomain) + domList=("${domList[@]}" ${validDomain}) fi } function PopWhitelistFile(){ #check whitelist file exists, and if not, create it - if [[ ! -f $whitelist ]];then - touch $whitelist + if [[ ! -f ${whitelist} ]];then + touch ${whitelist} fi for dom in "${domList[@]}" do - if $addmode; then + if ${addmode}; then AddDomain "$dom" else RemoveDomain "$dom" @@ -114,19 +114,19 @@ function AddDomain(){ #| sed 's/\./\\./g' bool=false - grep -Ex -q "$1" $whitelist || bool=true - if $bool; then + grep -Ex -q "$1" ${whitelist} || bool=true + if ${bool}; then #domain not found in the whitelist file, add it! - if $verbose; then + if ${verbose}; then echo -n "::: Adding $1 to $whitelist..." fi - echo "$1" >> $whitelist + echo "$1" >> ${whitelist} modifyHost=true - if $verbose; then + if ${verbose}; then echo " done!" fi else - if $verbose; then + if ${verbose}; then echo "::: $1 already exists in $whitelist, no need to add!" fi fi @@ -135,10 +135,10 @@ function AddDomain(){ function RemoveDomain(){ bool=false - grep -Ex -q "$1" $whitelist || bool=true - if $bool; then + grep -Ex -q "$1" ${whitelist} || bool=true + if ${bool}; then #Domain is not in the whitelist file, no need to Remove - if $verbose; then + if ${verbose}; then echo "::: $1 is NOT whitelisted! No need to remove" fi else @@ -152,21 +152,21 @@ function RemoveDomain(){ } function ModifyHostFile(){ - if $addmode; then + if ${addmode}; then #remove domains in from hosts file - if [[ -r $whitelist ]];then + if [[ -r ${whitelist} ]];then # Remove whitelist entries - numberOf=$(cat $whitelist | sed '/^\s*$/d' | wc -l) + numberOf=$(cat ${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 -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 + 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 $piholeDir/whitelist.tmp $adList > $piholeDir/gravity.tmp - rm $adList - mv $piholeDir/gravity.tmp $adList - rm $piholeDir/whitelist.tmp + grep -F -x -v -f ${piholeDir}/whitelist.tmp ${adList} > ${piholeDir}/gravity.tmp + rm ${adList} + mv ${piholeDir}/gravity.tmp ${adList} + rm ${piholeDir}/whitelist.tmp echo " done!" fi @@ -178,18 +178,18 @@ function ModifyHostFile(){ do if grep -q "$rdom" /etc/pihole/*.domains; then echo "::: AdLists contain $rdom, re-adding block" - if [[ -n $piholeIPv6 ]];then + if [[ -n ${piholeIPv6} ]];then echo -n "::: Restoring block for $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 "::: Restoring block for $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 fi echo -n "::: Removing $rdom from $whitelist..." - 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 @@ -201,12 +201,12 @@ function Reload() { echo -n "::: Refresh lists in dnsmasq..." dnsmasqPid=$(pidof dnsmasq) - if [[ $dnsmasqPid ]]; then + if [[ ${dnsmasqPid} ]]; then # service already running - reload config - $SUDO killall -s HUP dnsmasq + ${SUDO} killall -s HUP dnsmasq else # service not running, start it up - $SUDO service dnsmasq start + ${SUDO} service dnsmasq start fi echo " done!" } @@ -239,16 +239,16 @@ done PopWhitelistFile -if $modifyHost || $force; then +if ${modifyHost} || ${force}; then ModifyHostFile else - if $verbose; then + if ${verbose}; then echo ":::" echo "::: No changes need to be made" fi exit 1 fi -if $reload; then +if ${reload}; then Reload fi diff --git a/automated install/uninstall.sh b/automated install/uninstall.sh index 5730c531..01e76cad 100755 --- a/automated install/uninstall.sh +++ b/automated install/uninstall.sh @@ -39,7 +39,7 @@ if [ -x "$(command -v rpm)" ];then rpm -qa | grep ^$1- > /dev/null } package_cleanup() { - $SUDO $PKG_MANAGER -y autoremove + ${SUDO} ${PKG_MANAGER} -y autoremove } elif [ -x "$(command -v apt-get)" ];then # Debian Family @@ -50,8 +50,8 @@ elif [ -x "$(command -v apt-get)" ];then dpkg-query -W -f='${Status}' "$1" 2>/dev/null | grep -c "ok installed" } package_cleanup() { - $SUDO $PKG_MANAGER -y autoremove - $SUDO $PKG_MANAGER -y autoclean + ${SUDO} ${PKG_MANAGER} -y autoremove + ${SUDO} ${PKG_MANAGER} -y autoclean } else echo "OS distribution not supported" @@ -66,8 +66,8 @@ spinner() while [ "$(ps a | awk '{print $1}' | grep "$pid")" ]; do local temp=${spinstr#?} printf " [%c] " "$spinstr" - local spinstr=$temp${spinstr%"$temp"} - sleep $delay + local spinstr=${temp}${spinstr%"$temp"} + sleep ${delay} printf "\b\b\b\b\b\b" done printf " \b\b\b\b" @@ -77,12 +77,12 @@ function removeAndPurge { # Purge dependencies echo ":::" for i in "${PIHOLE_DEPS[@]}"; do - package_check $i > /dev/null + package_check ${i} > /dev/null if [ $? -eq 0 ]; then while true; do read -rp "::: Do you wish to remove $i from your system? [y/n]: " yn - case $yn in - [Yy]* ) printf ":::\tRemoving %s..." "$i"; $SUDO $PKG_REMOVE "$i" &> /dev/null & spinner $!; printf "done!\n"; break;; + case ${yn} in + [Yy]* ) printf ":::\tRemoving %s..." "$i"; ${SUDO} ${PKG_REMOVE} "$i" &> /dev/null & spinner $!; printf "done!\n"; break;; [Nn]* ) printf ":::\tSkipping %s" "$i\n"; break;; * ) printf "::: You must answer yes or no!\n";; esac @@ -94,7 +94,7 @@ echo ":::" # Remove dependency config files echo "::: Removing dnsmasq config files..." - $SUDO rm /etc/dnsmasq.conf /etc/dnsmasq.conf.orig /etc/dnsmasq.d/01-pihole.conf &> /dev/null + ${SUDO} rm /etc/dnsmasq.conf /etc/dnsmasq.conf.orig /etc/dnsmasq.d/01-pihole.conf &> /dev/null # Take care of any additional package cleaning printf "::: Auto removing & cleaning remaining dependencies..." @@ -108,14 +108,14 @@ function removeNoPurge { echo ":::" # Only web directories/files that are created by pihole should be removed. echo "::: Removing the Pi-hole Web server files..." - $SUDO rm -rf /var/www/html/admin &> /dev/null - $SUDO rm -rf /var/www/html/pihole &> /dev/null - $SUDO rm /var/www/html/index.lighttpd.orig &> /dev/null + ${SUDO} rm -rf /var/www/html/admin &> /dev/null + ${SUDO} rm -rf /var/www/html/pihole &> /dev/null + ${SUDO} rm /var/www/html/index.lighttpd.orig &> /dev/null # If the web directory is empty after removing these files, then the parent html folder can be removed. if [ -d "/var/www/html" ]; then if [[ ! "$(ls -A /var/www/html)" ]]; then - $SUDO rm -rf /var/www/html &> /dev/null + ${SUDO} rm -rf /var/www/html &> /dev/null fi fi @@ -125,36 +125,36 @@ function removeNoPurge { # preserved. if [[ -f /etc/crontab.orig ]]; then echo "::: Initial Pi-hole cron detected. Restoring the default system cron..." - $SUDO mv /etc/crontab /etc/crontab.pihole - $SUDO mv /etc/crontab.orig /etc/crontab - $SUDO service cron restart + ${SUDO} mv /etc/crontab /etc/crontab.pihole + ${SUDO} mv /etc/crontab.orig /etc/crontab + ${SUDO} service cron restart fi # Attempt to preserve backwards compatibility with older versions if [[ -f /etc/cron.d/pihole ]];then echo "::: Removing cron.d/pihole..." - $SUDO rm /etc/cron.d/pihole &> /dev/null + ${SUDO} rm /etc/cron.d/pihole &> /dev/null fi echo "::: Removing config files and scripts..." - package_check $i > /dev/null + package_check ${i} > /dev/null if [ $? -eq 1 ]; then - $SUDO rm -rf /etc/lighttpd/ &> /dev/null + ${SUDO} rm -rf /etc/lighttpd/ &> /dev/null else if [ -f /etc/lighttpd/lighttpd.conf.orig ]; then - $SUDO mv /etc/lighttpd/lighttpd.conf.orig /etc/lighttpd/lighttpd.conf + ${SUDO} mv /etc/lighttpd/lighttpd.conf.orig /etc/lighttpd/lighttpd.conf fi fi - $SUDO rm /etc/dnsmasq.d/adList.conf &> /dev/null - $SUDO rm /etc/dnsmasq.d/01-pihole.conf &> /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 /opt/pihole/ &> /dev/null - $SUDO rm /usr/local/bin/pihole &> /dev/null - $SUDO rm /etc/bash_completion.d/pihole &> /dev/null - $SUDO rm /etc/sudoers.d/pihole &> /dev/null + ${SUDO} rm /etc/dnsmasq.d/adList.conf &> /dev/null + ${SUDO} rm /etc/dnsmasq.d/01-pihole.conf &> /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 /opt/pihole/ &> /dev/null + ${SUDO} rm /usr/local/bin/pihole &> /dev/null + ${SUDO} rm /etc/bash_completion.d/pihole &> /dev/null + ${SUDO} rm /etc/sudoers.d/pihole &> /dev/null echo ":::" printf "::: Finished removing PiHole from your system. Sorry to see you go!\n" @@ -168,7 +168,7 @@ echo "::: Preparing to remove packages, be sure that each may be safely removed echo "::: (SAFE TO REMOVE ALL ON RASPBIAN)" while true; do read -rp "::: Do you wish to purge PiHole's dependencies from your OS? (You will be prompted for each package) [y/n]: " yn - case $yn in + case ${yn} in [Yy]* ) removeAndPurge; break;; [Nn]* ) removeNoPurge; break;;