1
0
mirror of https://github.com/pi-hole/pi-hole synced 2024-11-17 21:59:55 +00:00

Merge pull request #818 from airencracken/development

Standardize function declaration
This commit is contained in:
Adam Warner 2016-10-20 12:01:41 +01:00 committed by GitHub
commit 266c160108
9 changed files with 123 additions and 120 deletions

View File

@ -10,19 +10,20 @@
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
helpFunc()
{
echo "::: Immediately blacklists one or more domains in the hosts file"
echo ":::"
echo ":::"
echo "::: Usage: 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"
helpFunc() {
cat << EOM
::: Immediately blacklists one or more domains in the hosts file
:::
:::
::: Usage: pihole -b domain1 [domain2 ...]
::: Options:
::: -d, --delmode Remove domains from the blacklist
::: -nr, --noreload Update blacklist without refreshing dnsmasq
::: -f, --force Force updating of the hosts files, even if there are no changes
::: -q, --quiet output is less verbose
::: -h, --help Show this help dialog
::: -l, --list Display your blacklisted domains
EOM
exit 1
}
@ -71,7 +72,7 @@ if [[ -f ${piholeIPv6file} ]];then
piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
fi
HandleOther(){
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/')
if [ -z "$validDomain" ]; then
@ -81,7 +82,7 @@ HandleOther(){
fi
}
PopBlacklistFile(){
PopBlacklistFile() {
#check blacklist file exists, and if not, create it
if [[ ! -f ${blacklist} ]];then
touch ${blacklist}
@ -95,7 +96,7 @@ PopBlacklistFile(){
done
}
AddDomain(){
AddDomain() {
#| sed 's/\./\\./g'
bool=false
grep -Ex -q "$1" ${blacklist} || bool=true
@ -114,7 +115,7 @@ AddDomain(){
fi
}
RemoveDomain(){
RemoveDomain() {
bool=false
grep -Ex -q "$1" ${blacklist} || bool=true
@ -133,7 +134,7 @@ RemoveDomain(){
fi
}
ModifyHostFile(){
ModifyHostFile() {
if ${addmode}; then
#add domains to the hosts file
if [[ -r ${blacklist} ]];then

View File

@ -17,7 +17,7 @@ gravity="/etc/pihole/gravity.list"
today=$(date "+%b %e")
CalcBlockedDomains(){
CalcBlockedDomains() {
CheckIPv6
if [ -e "$gravity" ]; then
#Are we IPV6 or IPV4?
@ -33,7 +33,7 @@ CalcBlockedDomains(){
fi
}
CalcQueriesToday(){
CalcQueriesToday() {
if [ -e "$piLog" ];then
queriesToday=$(cat "$piLog" | grep "$today" | awk '/query/ {print $6}' | wc -l)
else
@ -41,7 +41,7 @@ CalcQueriesToday(){
fi
}
CalcblockedToday(){
CalcblockedToday() {
if [ -e "$piLog" ] && [ -e "$gravity" ];then
blockedToday=$(cat ${piLog} | awk '/\/etc\/pihole\/gravity.list/ && !/address/ {print $6}' | wc -l)
else
@ -49,7 +49,7 @@ CalcblockedToday(){
fi
}
CalcPercentBlockedToday(){
CalcPercentBlockedToday() {
if [ "$queriesToday" != "Err." ] && [ "$blockedToday" != "Err." ]; then
if [ "$queriesToday" != 0 ]; then #Fixes divide by zero error :)
#scale 2 rounds the number down, so we'll do scale 4 and then trim the last 2 zeros
@ -61,7 +61,7 @@ CalcPercentBlockedToday(){
fi
}
CheckIPv6(){
CheckIPv6() {
piholeIPv6file="/etc/pihole/.useIPv6"
if [[ -f ${piholeIPv6file} ]];then
# If the file exists, then the user previously chose to use IPv6 in the automated installer
@ -69,7 +69,7 @@ CheckIPv6(){
fi
}
outputJSON(){
outputJSON() {
CalcQueriesToday
CalcblockedToday
CalcPercentBlockedToday
@ -79,7 +79,7 @@ outputJSON(){
printf '{"domains_being_blocked":"%s","dns_queries_today":"%s","ads_blocked_today":"%s","ads_percentage_today":"%s"}\n' "$blockedDomainsTotal" "$queriesToday" "$blockedToday" "$percentBlockedToday"
}
normalChrono(){
normalChrono() {
for (( ; ; ))
do
clear
@ -121,16 +121,17 @@ normalChrono(){
done
}
displayHelp(){
echo "::: Displays stats about your piHole!"
echo ":::"
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:"
echo "::: -j, --json output stats as JSON formatted string"
echo "::: -h, --help display this help text"
displayHelp() {
cat << EOM
::: Displays stats about your piHole!
:::
::: Usage: sudo pihole -c [optional:-j]
::: Note: If no option is passed, then stats are displayed on screen, updated every 5 seconds
:::
::: Options:
::: -j, --json output stats as JSON formatted string
::: -h, --help display this help text
EOM
exit 1
}

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#/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
@ -27,12 +27,14 @@ PIHOLELOG="/var/log/pihole.log"
WHITELISTMATCHES="/tmp/whitelistmatches.list"
# Header info and introduction
echo "::: Beginning Pi-hole debug at $(date)!"
echo "::: This debugging process will collect information from your running configuration,"
echo "::: and optionally upload the generated log to a unique and random directory on"
echo "::: Termbin.com. NOTE: All log files auto-delete after 1 month and you are the only"
echo "::: person who is given the unique URL. Please consider where you post this link."
echo "::: "
cat << EOM
::: Beginning Pi-hole debug at $(date)!
::: This debugging process will collect information from your running configuration,
::: and optionally upload the generated log to a unique and random directory on
::: Termbin.com. NOTE: All log files auto-delete after 1 month and you are the only
::: person who is given the unique URL. Please consider where you post this link.
:::
EOM
######## FIRST CHECK ########
@ -61,11 +63,11 @@ else
fi
### Private functions exist here ###
function log_write {
log_write() {
echo "$1" >> "${DEBUG_LOG}"
}
function version_check {
version_check() {
log_write "############################################################"
log_write "########## Installed Versions ##########"
log_write "############################################################"
@ -83,7 +85,7 @@ function version_check {
php_ver="$(php -v |& head -n1)" && log_write "${php_ver}" || log_write "PHP not installed."
}
function distro_check {
distro_check() {
echo "############################################################" >> ${DEBUG_LOG}
echo "######## Installed OS Distribution #########" >> ${DEBUG_LOG}
echo "############################################################" >> ${DEBUG_LOG}
@ -96,7 +98,7 @@ function distro_check {
echo >> ${DEBUG_LOG}
}
function ip_check {
ip_check() {
echo "############################################################" >> ${DEBUG_LOG}
echo "######## IP Address Information #########" >> ${DEBUG_LOG}
echo "############################################################" >> ${DEBUG_LOG}
@ -166,7 +168,7 @@ function ip_check {
echo >> ${DEBUG_LOG}
}
function hostnameCheck {
hostnameCheck() {
echo "############################################################" >> ${DEBUG_LOG}
echo "######## Hostname Information #########" >> ${DEBUG_LOG}
echo "############################################################" >> ${DEBUG_LOG}
@ -188,7 +190,7 @@ function hostnameCheck {
fi
}
function portCheck {
portCheck() {
echo "############################################################" >> ${DEBUG_LOG}
echo "######## Open Port Information #########" >> ${DEBUG_LOG}
echo "############################################################" >> ${DEBUG_LOG}
@ -200,7 +202,7 @@ function portCheck {
echo >> ${DEBUG_LOG}
}
function testResolver {
testResolver() {
echo "############################################################" >> ${DEBUG_LOG}
echo "############ Resolver Functions Check ############" >> ${DEBUG_LOG}
echo "############################################################" >> ${DEBUG_LOG}
@ -262,7 +264,7 @@ function testResolver {
echo >> ${DEBUG_LOG}
}
function checkProcesses {
checkProcesses() {
echo "#######################################" >> ${DEBUG_LOG}
echo "########### Processes Check ###########" >> ${DEBUG_LOG}
echo "#######################################" >> ${DEBUG_LOG}
@ -279,7 +281,7 @@ function checkProcesses {
echo >> ${DEBUG_LOG}
}
function debugLighttpd {
debugLighttpd() {
echo "::: Writing lighttpd to debug log..."
echo "#######################################" >> ${DEBUG_LOG}
echo "############ lighttpd.conf ############" >> ${DEBUG_LOG}
@ -420,7 +422,7 @@ fi
# Continuously append the pihole.log file to the pihole_debug.log file
function dumpPiHoleLog {
dumpPiHoleLog() {
trap '{ echo -e "\n::: Finishing debug write from interrupt... Quitting!" ; exit 1; }' INT
echo -e "::: Writing current Pi-hole 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}
@ -439,7 +441,7 @@ function dumpPiHoleLog {
}
# Anything to be done after capturing of pihole.log terminates
function finalWork {
finalWork() {
echo "::: Finshed debugging!"
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

View File

@ -17,8 +17,7 @@ webInterfaceDir="/var/www/html/admin"
piholeGitUrl="https://github.com/pi-hole/pi-hole.git"
piholeFilesDir="/etc/.pihole"
spinner()
{
spinner() {
local pid=$1
local delay=0.50
local spinstr='/-\|'

View File

@ -14,7 +14,7 @@
latest=false
current=false
normalOutput(){
normalOutput() {
piholeVersion=$(cd /etc/.pihole/ && git describe --tags --abbrev=0)
webVersion=$(cd /var/www/html/admin/ && git describe --tags --abbrev=0)
@ -25,7 +25,7 @@ normalOutput(){
echo "::: Web-Admin version is $webVersion (Latest version is $webVersionLatest)"
}
webOutput(){
webOutput() {
for var in "$@"
do
case "$var" in
@ -48,7 +48,7 @@ webOutput(){
fi
}
coreOutput(){
coreOutput() {
for var in "$@"
do
case "$var" in
@ -71,21 +71,22 @@ coreOutput(){
fi
}
helpFunc()
{
echo ":::"
echo "::: Show Pi-hole/Web Admin versions"
echo ":::"
echo "::: Usage: pihole -v [ -a | -p ] [ -l | -c ]"
echo ":::"
echo "::: Options:"
echo "::: -a, --admin Show both current and latest versions of web admin"
echo "::: -p, --pihole Show both current and latest versions of Pi-hole core files"
echo "::: -l, --latest (Only after -a | -p) Return only latest version"
echo "::: -c, --current (Only after -a | -p) Return only current version"
echo "::: -h, --help Show this help dialog"
echo ":::"
exit 0
helpFunc() {
cat << EOM
:::
::: Show Pi-hole/Web Admin versions
:::
::: Usage: pihole -v [ -a | -p ] [ -l | -c ]
:::
::: Options:
::: -a, --admin Show both current and latest versions of web admin
::: -p, --pihole Show both current and latest versions of Pi-hole core files
::: -l, --latest (Only after -a | -p) Return only latest version
::: -c, --current (Only after -a | -p) Return only current version
::: -h, --help Show this help dialog
:::
EOM
exit 1
}
if [[ $# = 0 ]]; then

View File

@ -11,19 +11,20 @@
# (at your option) any later version.
helpFunc()
{
echo "::: Immediately whitelists one or more domains in the hosts file"
echo ":::"
echo "::: Usage: 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"
helpFunc() {
cat << EOM
::: Immediately whitelists one or more domains in the hosts file
:::
::: Usage: pihole -w domain1 [domain2 ...]
:::
::: Options:
::: -d, --delmode Remove domains from the whitelist
::: -nr, --noreload Update Whitelist without refreshing dnsmasq
::: -f, --force Force updating of the hosts files, even if there are no changes
::: -q, --quiet output is less verbose
::: -h, --help Show this help dialog
::: -l, --list Display your whitelisted domains
EOM
exit 1
}
@ -71,7 +72,7 @@ if [[ -f ${piholeIPv6file} ]];then
piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }')
fi
HandleOther(){
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/')
if [ -z "$validDomain" ]; then
@ -81,7 +82,7 @@ HandleOther(){
fi
}
PopWhitelistFile(){
PopWhitelistFile() {
#check whitelist file exists, and if not, create it
if [[ ! -f ${whitelist} ]];then
touch ${whitelist}
@ -96,7 +97,7 @@ PopWhitelistFile(){
done
}
AddDomain(){
AddDomain() {
#| sed 's/\./\\./g'
bool=false
@ -118,7 +119,7 @@ AddDomain(){
fi
}
RemoveDomain(){
RemoveDomain() {
bool=false
grep -Ex -q "$1" ${whitelist} || bool=true
@ -137,7 +138,7 @@ RemoveDomain(){
fi
}
ModifyHostFile(){
ModifyHostFile() {
if ${addmode}; then
#remove domains in from hosts file
if [[ -r ${whitelist} ]];then

View File

@ -121,8 +121,7 @@ else
fi
####### FUNCTIONS ##########
spinner()
{
spinner() {
local pid=$1
local delay=0.50
local spinstr='/-\|'
@ -389,8 +388,7 @@ setStaticIPv4() {
fi
}
function valid_ip()
{
valid_ip() {
local ip=$1
local stat=1
@ -406,7 +404,7 @@ function valid_ip()
return ${stat}
}
setDNS(){
setDNS() {
DNSChooseCmd=(whiptail --separate-output --radiolist "Select Upstream DNS Provider. To use your own, select Custom." ${r} ${c} 6)
DNSChooseOptions=(Google "" on
OpenDNS "" off
@ -497,7 +495,7 @@ setDNS(){
fi
}
version_check_dnsmasq(){
version_check_dnsmasq() {
# Check if /etc/dnsmasq.conf is from pihole. If so replace with an original and install new in .d directory
local dnsmasq_conf="/etc/dnsmasq.conf"
local dnsmasq_conf_orig="/etc/dnsmasq.conf.orig"
@ -542,7 +540,7 @@ version_check_dnsmasq(){
sed -i 's/^#conf-dir=\/etc\/dnsmasq.d$/conf-dir=\/etc\/dnsmasq.d/' ${dnsmasq_conf}
}
remove_legacy_scripts(){
remove_legacy_scripts() {
#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
@ -642,7 +640,7 @@ update_pacakge_cache() {
fi
}
notify_package_updates_available(){
notify_package_updates_available() {
# Let user know if they have outdated packages on their system and
# advise them to run a package update at soonest possible.
echo ":::"
@ -659,7 +657,7 @@ notify_package_updates_available(){
fi
}
install_dependent_packages(){
install_dependent_packages() {
# Install packages passed in via argument array
# No spinner - conflicts with set -e
declare -a argArray1=("${!1}")
@ -765,7 +763,7 @@ runGravity() {
/opt/pihole/gravity.sh
}
create_pihole_user(){
create_pihole_user() {
# Check if user pihole exists and create if not
echo "::: Checking if user 'pihole' exists..."
id -u pihole &> /dev/null && echo "::: User 'pihole' already exists" || (echo "::: User 'pihole' doesn't exist. Creating..." && useradd -r -s /usr/sbin/nologin pihole)
@ -876,7 +874,7 @@ The install log is in /etc/pihole.
View the web interface at http://pi.hole/admin or http://${IPv4_address%/*}/admin" ${r} ${c}
}
update_dialogs(){
update_dialogs() {
# reconfigure
if [ "$reconfigure" = true ]; then
opt1a="Repair"

View File

@ -58,8 +58,7 @@ else
exit
fi
spinner()
{
spinner() {
local pid=$1
local delay=0.50
local spinstr='/-\|'
@ -73,9 +72,9 @@ spinner()
printf " \b\b\b\b"
}
function removeAndPurge {
removeAndPurge() {
# Purge dependencies
echo ":::"
echo ":::"
for i in "${PIHOLE_DEPS[@]}"; do
package_check ${i} > /dev/null
if [ $? -eq 0 ]; then
@ -104,7 +103,7 @@ echo ":::"
removeNoPurge
}
function removeNoPurge {
removeNoPurge() {
echo ":::"
# Only web directories/files that are created by pihole should be removed.
echo "::: Removing the Pi-hole Web server files..."

View File

@ -13,15 +13,16 @@
# Run this script as root or under sudo
echo ":::"
helpFunc()
{
echo "::: Pull in domains from adlists"
echo ":::"
echo "::: Usage: pihole -g"
echo ":::"
echo "::: Options:"
echo "::: -f, --force Force lists to be downloaded, even if they don't need updating."
echo "::: -h, --help Show this help dialog"
helpFunc() {
cat << EOM
::: Pull in domains from adlists
:::
::: Usage: pihole -g
:::
::: Options:
::: -f, --force Force lists to be downloaded, even if they don't need updating.
::: -h, --help Show this help dialog
EOM
exit 1
}
@ -196,7 +197,7 @@ gravity_Schwarzchild() {
echo " done!"
}
gravity_Blacklist(){
gravity_Blacklist() {
# Append blacklist entries if they exist
echo -n "::: Running blacklist script to update HOSTS file...."
${blacklistScript} -f -nr -q > /dev/null