From d4dccfdb2d33953290ffb01968d901410888ea1f Mon Sep 17 00:00:00 2001 From: Promofaux Date: Mon, 31 Oct 2016 21:38:48 +0000 Subject: [PATCH 01/17] Cherry pick 229439c --- automated install/basic-install.sh | 38 ++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 49329f5a..b3b34757 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -537,6 +537,29 @@ setDNS() { fi } +setLogging() { + LogToggleCommand=(whiptail --separate-output --radiolist "Select Logging mode:" ${r} ${c} 6) + DNSChooseOptions=("On (Reccomended)" "" on + Off "" off) + DNSchoices=$("${DNSChooseCmd[@]}" "${DNSChooseOptions[@]}" 2>&1 >/dev/tty) + if [[ $? = 0 ]];then + case ${DNSchoices} in + "On (Reccomended)") + echo "::: Logging On." + queryLogging=true + ;; + Off) + echo "::: Logging Off." + queryLogging=false + ;; + esac + else + echo "::: Cancel selected. Exiting..." + exit 1 + fi +} + + 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" @@ -611,6 +634,14 @@ version_check_dnsmasq() { fi sed -i 's/^#conf-dir=\/etc\/dnsmasq.d$/conf-dir=\/etc\/dnsmasq.d/' ${dnsmasq_conf} + + if [[ "${queryLogging}" == false ]] ; then + #Disable Logging + sed -i 's/^log-queries/#log-queries/' ${dnsmasq_pihole_01_location} + else + #Enable Logging + sed -i 's/^#log-queries/log-queries/' ${dnsmasq_pihole_01_location} + fi } remove_legacy_scripts() { @@ -855,6 +886,7 @@ finalExports() { echo "IPv6_address=${IPv6_address}" echo "piholeDNS1=${piholeDNS1}" echo "piholeDNS2=${piholeDNS2}" + echo "queryLogging=${queryLogging}" }>> "${setupVars}" } @@ -1034,6 +1066,12 @@ main() { use4andor6 # Decide what upstream DNS Servers to use setDNS + # Let the user decide if they want query logging enabled... + setLogging + + # Install packages used by the Pi-hole + install_dependent_packages PIHOLE_DEPS[@] + # Install and log everything to a file installPihole | tee ${tmpLog} else From 617a1477069e6cc2b806d801450ebf8ac0744bc4 Mon Sep 17 00:00:00 2001 From: Promofaux Date: Mon, 31 Oct 2016 21:40:20 +0000 Subject: [PATCH 02/17] Wording adjustment --- automated install/basic-install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index b3b34757..6d66fb89 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -538,13 +538,13 @@ setDNS() { } setLogging() { - LogToggleCommand=(whiptail --separate-output --radiolist "Select Logging mode:" ${r} ${c} 6) + LogToggleCommand=(whiptail --separate-output --radiolist "Do you want to log queries?\n (Disabling will render graphs on the Admin page useless):" ${r} ${c} 6) DNSChooseOptions=("On (Reccomended)" "" on Off "" off) DNSchoices=$("${DNSChooseCmd[@]}" "${DNSChooseOptions[@]}" 2>&1 >/dev/tty) if [[ $? = 0 ]];then case ${DNSchoices} in - "On (Reccomended)") + "On (Recommended)") echo "::: Logging On." queryLogging=true ;; From 1d21b0da9a83fd288741857c0704ac8618661e5d Mon Sep 17 00:00:00 2001 From: Promofaux Date: Mon, 31 Oct 2016 22:02:20 +0000 Subject: [PATCH 03/17] enable or disable logging from pihole command --- pihole | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pihole b/pihole index 4b197d12..55d82569 100755 --- a/pihole +++ b/pihole @@ -125,6 +125,27 @@ piholeEnable() { restartDNS } +piholeLogging() { + + shift + + if [[ "${1}" == "off" ]] ; then + #Disable Logging + sed -i 's/^log-queries/#log-queries/' /etc/dnsmasq.d/01-pihole.conf + sed -i 's/^queryLogging=true/queryLogging=false/' /etc/pihole/setupVars.conf + echo "::: Logging has been disabled!" + elif [[ "${1}" == "on" ]] ; then + #Enable logging + sed -i 's/^#log-queries/log-queries/' /etc/dnsmasq.d/01-pihole.conf + sed -i 's/^queryLogging=false/queryLogging=true/' /etc/pihole/setupVars.conf + echo "::: Logging has been enabled!" + else + echo "::: Invalid option passed, please pass 'on' or 'off'" + exit 1 + fi + restartDNS +} + piholeStatus() { if [[ $(cat /etc/dnsmasq.d/01-pihole.conf | grep "#addn-hosts=/") ]] ; then #list is commented out @@ -173,6 +194,7 @@ helpFunc() { ::: -h, help Show this help dialog ::: -v, version Show current versions ::: -q, query Query the adlists for a specific domain +::: -l, logging Enable or Disable logging (pass 'on' or 'off') ::: uninstall Uninstall Pi-Hole from your system :(! ::: status Is Pi-Hole Enabled or Disabled ::: enable Enable Pi-Hole DNS Blocking @@ -200,6 +222,7 @@ case "${1}" in "-h" | "help" ) helpFunc;; "-v" | "version" ) versionFunc "$@";; "-q" | "query" ) queryFunc "$@";; + "-l" | "logging" ) piholeLogging "$@";; "uninstall" ) uninstallFunc;; "enable" ) piholeEnable 1;; "disable" ) piholeEnable 0;; From bbc09ed31347dbf1a58487d6df9befadb33c1e92 Mon Sep 17 00:00:00 2001 From: Dan Schaper Date: Mon, 31 Oct 2016 16:48:02 -0700 Subject: [PATCH 04/17] Swap variable names. --- automated install/basic-install.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 6d66fb89..3abaca7c 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -539,11 +539,11 @@ setDNS() { setLogging() { LogToggleCommand=(whiptail --separate-output --radiolist "Do you want to log queries?\n (Disabling will render graphs on the Admin page useless):" ${r} ${c} 6) - DNSChooseOptions=("On (Reccomended)" "" on + LogChooseOptions=("On (Reccomended)" "" on Off "" off) - DNSchoices=$("${DNSChooseCmd[@]}" "${DNSChooseOptions[@]}" 2>&1 >/dev/tty) + LogChoices=$("${LogToggleCommand[@]}" "${LogChooseOptions[@]}" 2>&1 >/dev/tty) if [[ $? = 0 ]];then - case ${DNSchoices} in + case ${LogChoices} in "On (Recommended)") echo "::: Logging On." queryLogging=true @@ -554,6 +554,7 @@ setLogging() { ;; esac else + # Well never see this, `set -e` kicked in already and dropped us. echo "::: Cancel selected. Exiting..." exit 1 fi From d695c5972f0c84046281bf7c9b051984a4744cd4 Mon Sep 17 00:00:00 2001 From: Dan Schaper Date: Mon, 31 Oct 2016 16:48:58 -0700 Subject: [PATCH 05/17] `local` variables just to be safe and make sure they stay in this function. --- automated install/basic-install.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 3abaca7c..0ee45e77 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -538,6 +538,10 @@ setDNS() { } setLogging() { + local LogToggleCommand + local LogChooseOptions + local LogChoices + LogToggleCommand=(whiptail --separate-output --radiolist "Do you want to log queries?\n (Disabling will render graphs on the Admin page useless):" ${r} ${c} 6) LogChooseOptions=("On (Reccomended)" "" on Off "" off) From c07d7165ab31b612bb6de34ef8ac4ebffa51f215 Mon Sep 17 00:00:00 2001 From: Dan Schaper Date: Mon, 31 Oct 2016 16:49:40 -0700 Subject: [PATCH 06/17] Global variables CAP'ed --- automated install/basic-install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 0ee45e77..028e20a4 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -550,11 +550,11 @@ setLogging() { case ${LogChoices} in "On (Recommended)") echo "::: Logging On." - queryLogging=true + QUERYLOGGING=true ;; Off) echo "::: Logging Off." - queryLogging=false + QUERYLOGGING=false ;; esac else @@ -640,7 +640,7 @@ version_check_dnsmasq() { sed -i 's/^#conf-dir=\/etc\/dnsmasq.d$/conf-dir=\/etc\/dnsmasq.d/' ${dnsmasq_conf} - if [[ "${queryLogging}" == false ]] ; then + if [[ "${QUERYLOGGING}" == false ]] ; then #Disable Logging sed -i 's/^log-queries/#log-queries/' ${dnsmasq_pihole_01_location} else @@ -891,7 +891,7 @@ finalExports() { echo "IPv6_address=${IPv6_address}" echo "piholeDNS1=${piholeDNS1}" echo "piholeDNS2=${piholeDNS2}" - echo "queryLogging=${queryLogging}" + echo "queryLogging=${QUERYLOGGING}" }>> "${setupVars}" } From 9a1876571b11a55ac4c387d5c1a890f940548b3d Mon Sep 17 00:00:00 2001 From: Dan Schaper Date: Mon, 31 Oct 2016 16:55:10 -0700 Subject: [PATCH 07/17] Prototype `whiptails` so they don't fall to shell. Need to do this to all functions. --- automated install/basic-install.sh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 028e20a4..ddb83e3b 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -545,8 +545,7 @@ setLogging() { LogToggleCommand=(whiptail --separate-output --radiolist "Do you want to log queries?\n (Disabling will render graphs on the Admin page useless):" ${r} ${c} 6) LogChooseOptions=("On (Reccomended)" "" on Off "" off) - LogChoices=$("${LogToggleCommand[@]}" "${LogChooseOptions[@]}" 2>&1 >/dev/tty) - if [[ $? = 0 ]];then + LogChoices=$("${LogToggleCommand[@]}" "${LogChooseOptions[@]}" 2>&1 >/dev/tty) || (echo "::: Cancel selected. Exiting..." && exit 1) case ${LogChoices} in "On (Recommended)") echo "::: Logging On." @@ -557,11 +556,6 @@ setLogging() { QUERYLOGGING=false ;; esac - else - # Well never see this, `set -e` kicked in already and dropped us. - echo "::: Cancel selected. Exiting..." - exit 1 - fi } From a2903b6e6345d71d6b95734459cfaab02c845e58 Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Tue, 1 Nov 2016 09:32:57 +0000 Subject: [PATCH 08/17] Consistency --- automated install/basic-install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index ddb83e3b..c649d448 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -885,7 +885,7 @@ finalExports() { echo "IPv6_address=${IPv6_address}" echo "piholeDNS1=${piholeDNS1}" echo "piholeDNS2=${piholeDNS2}" - echo "queryLogging=${QUERYLOGGING}" + echo "QUERYLOGGING=${QUERYLOGGING}" }>> "${setupVars}" } From b723714c0c1f4e7f536c4ed0c5be72ee3c2530e2 Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Tue, 1 Nov 2016 09:33:39 +0000 Subject: [PATCH 09/17] Convention : https://google.github.io/styleguide/shell.xml?showone=Constants_and_Environment_Variable_Names#Constants_and_Environment_Variable_Names --- automated install/basic-install.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index c649d448..19c71818 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -549,11 +549,11 @@ setLogging() { case ${LogChoices} in "On (Recommended)") echo "::: Logging On." - QUERYLOGGING=true + QUERY_LOGGING=true ;; Off) echo "::: Logging Off." - QUERYLOGGING=false + QUERY_LOGGING=false ;; esac } @@ -634,7 +634,7 @@ version_check_dnsmasq() { sed -i 's/^#conf-dir=\/etc\/dnsmasq.d$/conf-dir=\/etc\/dnsmasq.d/' ${dnsmasq_conf} - if [[ "${QUERYLOGGING}" == false ]] ; then + if [[ "${QUERY_LOGGING}" == false ]] ; then #Disable Logging sed -i 's/^log-queries/#log-queries/' ${dnsmasq_pihole_01_location} else @@ -885,7 +885,7 @@ finalExports() { echo "IPv6_address=${IPv6_address}" echo "piholeDNS1=${piholeDNS1}" echo "piholeDNS2=${piholeDNS2}" - echo "QUERYLOGGING=${QUERYLOGGING}" + echo "QUERY_LOGGING=${QUERY_LOGGING}" }>> "${setupVars}" } From 82e7de2aaad483d22c2dab6750d1cc04c049d3ed Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Tue, 1 Nov 2016 09:36:59 +0000 Subject: [PATCH 10/17] Account for variable name changes --- automated install/basic-install.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 19c71818..77f14dc4 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -914,10 +914,16 @@ installPihole() { runGravity } -updatePihole() { +accountForRefactor() { + # At some point in the future this list can be pruned, for now we'll need it to ensure updates don't break. # Refactoring of install script has changed the name of a couple of variables. Sort them out here. sed -i 's/IPv4addr/IPv4_address/g' ${setupVars} sed -i 's/piholeIPv6/IPv6_address/g' ${setupVars} + +} + +updatePihole() { + accountForRefactor # Source ${setupVars} for use in the rest of the functions. . ${setupVars} # Install base files and web interface From edd00e8e708419e43b6fbf545615532658b9c30c Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Tue, 1 Nov 2016 09:45:22 +0000 Subject: [PATCH 11/17] consistency --- automated install/basic-install.sh | 164 +++++++++++++++-------------- 1 file changed, 86 insertions(+), 78 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 77f14dc4..7020eeff 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -29,8 +29,8 @@ PI_HOLE_LOCAL_REPO="/etc/.pihole" PI_HOLE_FILES=(chronometer list piholeDebug piholeLogFlush setupLCD update version) useUpdateVars=false -IPv4_address="" -IPv6_address="" +IPV4_ADDRESS="" +IPV6_ADDRESS="" # Find the rows and columns will default to 80x24 is it can not be detected screen_size=$(stty size 2>/dev/null || echo 24 80) @@ -183,7 +183,7 @@ getGitFiles() { find_IPv4_information() { # Find IP used to route to outside world IPv4dev=$(ip route get 8.8.8.8 | awk '{for(i=1;i<=NF;i++)if($i~/dev/)print $(i+1)}') - IPv4_address=$(ip -o -f inet addr show dev "$IPv4dev" | awk '{print $4}' | awk 'END {print}') + IPV4_ADDRESS=$(ip -o -f inet addr show dev "$IPv4dev" | awk '{print $4}' | awk 'END {print}') IPv4gw=$(ip route get 8.8.8.8 | awk '{print $3}') } @@ -265,8 +265,8 @@ chooseInterface() { chooseInterfaceOptions=$("${chooseInterfaceCmd[@]}" "${interfacesArray[@]}" 2>&1 >/dev/tty) if [[ $? = 0 ]]; then for desiredInterface in ${chooseInterfaceOptions}; do - piholeInterface=${desiredInterface} - echo "::: Using interface: $piholeInterface" + PIHOLE_INTERFACE=${desiredInterface} + echo "::: Using interface: $PIHOLE_INTERFACE" done else echo "::: Cancel selected, exiting...." @@ -276,8 +276,8 @@ chooseInterface() { useIPv6dialog() { # Show the IPv6 address used for blocking - IPv6_address=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }') - whiptail --msgbox --backtitle "IPv6..." --title "IPv6 Supported" "$IPv6_address will be used to block ads." ${r} ${c} + IPV6_ADDRESS=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }') + whiptail --msgbox --backtitle "IPv6..." --title "IPv6 Supported" "$IPV6_ADDRESS will be used to block ads." ${r} ${c} } @@ -305,8 +305,8 @@ use4andor6() { if [[ ${useIPv6} ]]; then useIPv6dialog fi - echo "::: IPv4 address: ${IPv4_address}" - echo "::: IPv6 address: ${IPv6_address}" + echo "::: IPv4 address: ${IPV4_ADDRESS}" + echo "::: IPv6 address: ${IPV6_ADDRESS}" if [ ! ${useIPv4} ] && [ ! ${useIPv6} ]; then echo "::: Cannot continue, neither IPv4 or IPv6 selected" echo "::: Exiting" @@ -321,7 +321,7 @@ use4andor6() { getStaticIPv4Settings() { # Ask if the user wants to use DHCP settings as their static IP if (whiptail --backtitle "Calibrating network interface" --title "Static IP Address" --yesno "Do you want to use your current network settings as a static address? - IP address: ${IPv4_address} + IP address: ${IPV4_ADDRESS} Gateway: ${IPv4gw}" ${r} ${c}); then # If they choose yes, let the user know that the IP address will not be available via DHCP and may cause a conflict. whiptail --msgbox --backtitle "IP information" --title "FYI: IP Conflict" "It is possible your router could still try to assign this IP to a device, which would cause a conflict. But in most cases the router is smart enough to not do that. @@ -334,16 +334,16 @@ It is also possible to use a DHCP reservation, but if you are going to do that, # Start a loop to let the user enter their information with the chance to go back and edit it if necessary until [[ ${ipSettingsCorrect} = True ]]; do # Ask for the IPv4 address - IPv4_address=$(whiptail --backtitle "Calibrating network interface" --title "IPv4 address" --inputbox "Enter your desired IPv4 address" ${r} ${c} "${IPv4_address}" 3>&1 1>&2 2>&3) + IPV4_ADDRESS=$(whiptail --backtitle "Calibrating network interface" --title "IPv4 address" --inputbox "Enter your desired IPv4 address" ${r} ${c} "${IPV4_ADDRESS}" 3>&1 1>&2 2>&3) if [[ $? = 0 ]]; then - echo "::: Your static IPv4 address: ${IPv4_address}" + echo "::: Your static IPv4 address: ${IPV4_ADDRESS}" # Ask for the gateway IPv4gw=$(whiptail --backtitle "Calibrating network interface" --title "IPv4 gateway (router)" --inputbox "Enter your desired IPv4 default gateway" ${r} ${c} "${IPv4gw}" 3>&1 1>&2 2>&3) if [[ $? = 0 ]]; then echo "::: Your static IPv4 gateway: ${IPv4gw}" # Give the user a chance to review their settings before moving on if (whiptail --backtitle "Calibrating network interface" --title "Static IP Address" --yesno "Are these settings correct? - IP address: ${IPv4_address} + IP address: ${IPV4_ADDRESS} Gateway: ${IPv4gw}" ${r} ${c}); then # After that's done, the loop ends and we move on ipSettingsCorrect=True @@ -370,8 +370,8 @@ It is also possible to use a DHCP reservation, but if you are going to do that, setDHCPCD() { # Append these lines to dhcpcd.conf to enable a static IP - echo "## interface ${piholeInterface} - static ip_address=${IPv4_address} + echo "## interface ${PIHOLE_INTERFACE} + static ip_address=${IPV4_ADDRESS} static routers=${IPv4gw} static domain_name_servers=${IPv4gw}" | tee -a /etc/dhcpcd.conf >/dev/null } @@ -382,45 +382,45 @@ setStaticIPv4() { local CIDR if [[ -f /etc/dhcpcd.conf ]]; then # Debian Family - if grep -q "${IPv4_address}" /etc/dhcpcd.conf; then + if grep -q "${IPV4_ADDRESS}" /etc/dhcpcd.conf; then echo "::: Static IP already configured" else setDHCPCD - ip addr replace dev "${piholeInterface}" "${IPv4_address}" + ip addr replace dev "${PIHOLE_INTERFACE}" "${IPV4_ADDRESS}" echo ":::" - echo "::: Setting IP to ${IPv4_address}. You may need to restart after the install is complete." + echo "::: Setting IP to ${IPV4_ADDRESS}. You may need to restart after the install is complete." echo ":::" fi - elif [[ -f /etc/sysconfig/network-scripts/ifcfg-${piholeInterface} ]];then + elif [[ -f /etc/sysconfig/network-scripts/ifcfg-${PIHOLE_INTERFACE} ]];then # Fedora Family - IFCFG_FILE=/etc/sysconfig/network-scripts/ifcfg-${piholeInterface} - if grep -q "${IPv4_address}" "${IFCFG_FILE}"; then + IFCFG_FILE=/etc/sysconfig/network-scripts/ifcfg-${PIHOLE_INTERFACE} + if grep -q "${IPV4_ADDRESS}" "${IFCFG_FILE}"; then echo "::: Static IP already configured" else - IPADDR=$(echo "${IPv4_address}" | cut -f1 -d/) - CIDR=$(echo "${IPv4_address}" | cut -f2 -d/) + IPADDR=$(echo "${IPV4_ADDRESS}" | cut -f1 -d/) + CIDR=$(echo "${IPV4_ADDRESS}" | cut -f2 -d/) # Backup existing interface configuration: cp "${IFCFG_FILE}" "${IFCFG_FILE}".pihole.orig # Build Interface configuration file: { echo "# Configured via Pi-Hole installer" - echo "DEVICE=$piholeInterface" + echo "DEVICE=$PIHOLE_INTERFACE" echo "BOOTPROTO=none" echo "ONBOOT=yes" echo "IPADDR=$IPADDR" echo "PREFIX=$CIDR" echo "GATEWAY=$IPv4gw" - echo "DNS1=$piholeDNS1" - echo "DNS2=$piholeDNS2" + echo "DNS1=$PIHOLE_DNS_1" + echo "DNS2=$PIHOLE_DNS_2" echo "USERCTL=no" }>> "${IFCFG_FILE}" - ip addr replace dev "${piholeInterface}" "${IPv4_address}" + ip addr replace dev "${PIHOLE_INTERFACE}" "${IPV4_ADDRESS}" if [ -x "$(command -v nmcli)" ];then # Tell NetworkManager to read our new sysconfig file nmcli con load "${IFCFG_FILE}" > /dev/null fi echo ":::" - echo "::: Setting IP to ${IPv4_address}. You may need to restart after the install is complete." + echo "::: Setting IP to ${IPV4_ADDRESS}. You may need to restart after the install is complete." echo ":::" fi else @@ -458,70 +458,70 @@ setDNS() { case ${DNSchoices} in Google) echo "::: Using Google DNS servers." - piholeDNS1="8.8.8.8" - piholeDNS2="8.8.4.4" + PIHOLE_DNS_1="8.8.8.8" + PIHOLE_DNS_2="8.8.4.4" ;; OpenDNS) echo "::: Using OpenDNS servers." - piholeDNS1="208.67.222.222" - piholeDNS2="208.67.220.220" + PIHOLE_DNS_1="208.67.222.222" + PIHOLE_DNS_2="208.67.220.220" ;; Level3) echo "::: Using Level3 servers." - piholeDNS1="4.2.2.1" - piholeDNS2="4.2.2.2" + PIHOLE_DNS_1="4.2.2.1" + PIHOLE_DNS_2="4.2.2.2" ;; Norton) echo "::: Using Norton ConnectSafe servers." - piholeDNS1="199.85.126.10" - piholeDNS2="199.85.127.10" + PIHOLE_DNS_1="199.85.126.10" + PIHOLE_DNS_2="199.85.127.10" ;; Comodo) echo "::: Using Comodo Secure servers." - piholeDNS1="8.26.56.26" - piholeDNS2="8.20.247.20" + PIHOLE_DNS_1="8.26.56.26" + PIHOLE_DNS_2="8.20.247.20" ;; Custom) until [[ ${DNSSettingsCorrect} = True ]]; do strInvalid="Invalid" - if [ ! ${piholeDNS1} ]; then - if [ ! ${piholeDNS2} ]; then + if [ ! ${PIHOLE_DNS_1} ]; then + if [ ! ${PIHOLE_DNS_2} ]; then prePopulate="" else - prePopulate=", ${piholeDNS2}" + prePopulate=", ${PIHOLE_DNS_2}" fi - elif [ ${piholeDNS1} ] && [ ! ${piholeDNS2} ]; then - prePopulate="${piholeDNS1}" - elif [ ${piholeDNS1} ] && [ ${piholeDNS2} ]; then - prePopulate="${piholeDNS1}, ${piholeDNS2}" + elif [ ${PIHOLE_DNS_1} ] && [ ! ${PIHOLE_DNS_2} ]; then + prePopulate="${PIHOLE_DNS_1}" + elif [ ${PIHOLE_DNS_1} ] && [ ${PIHOLE_DNS_2} ]; then + prePopulate="${PIHOLE_DNS_1}, ${PIHOLE_DNS_2}" fi piholeDNS=$(whiptail --backtitle "Specify Upstream DNS Provider(s)" --inputbox "Enter your desired upstream DNS provider(s), seperated by a comma.\n\nFor example '8.8.8.8, 8.8.4.4'" ${r} ${c} "${prePopulate}" 3>&1 1>&2 2>&3) if [[ $? = 0 ]]; then - piholeDNS1=$(echo "${piholeDNS}" | sed 's/[, \t]\+/,/g' | awk -F, '{print$1}') - piholeDNS2=$(echo "${piholeDNS}" | sed 's/[, \t]\+/,/g' | awk -F, '{print$2}') - if ! valid_ip "${piholeDNS1}" || [ ! "${piholeDNS1}" ]; then - piholeDNS1=${strInvalid} + PIHOLE_DNS_1=$(echo "${piholeDNS}" | sed 's/[, \t]\+/,/g' | awk -F, '{print$1}') + PIHOLE_DNS_2=$(echo "${piholeDNS}" | sed 's/[, \t]\+/,/g' | awk -F, '{print$2}') + if ! valid_ip "${PIHOLE_DNS_1}" || [ ! "${PIHOLE_DNS_1}" ]; then + PIHOLE_DNS_1=${strInvalid} fi - if ! valid_ip "${piholeDNS2}" && [ "${piholeDNS2}" ]; then - piholeDNS2=${strInvalid} + if ! valid_ip "${PIHOLE_DNS_2}" && [ "${PIHOLE_DNS_2}" ]; then + PIHOLE_DNS_2=${strInvalid} fi else echo "::: Cancel selected, exiting...." exit 1 fi - if [[ ${piholeDNS1} == "${strInvalid}" ]] || [[ ${piholeDNS2} == "${strInvalid}" ]]; then - whiptail --msgbox --backtitle "Invalid IP" --title "Invalid IP" "One or both entered IP addresses were invalid. Please try again.\n\n DNS Server 1: $piholeDNS1\n DNS Server 2: ${piholeDNS2}" ${r} ${c} - if [[ ${piholeDNS1} == "${strInvalid}" ]]; then - piholeDNS1="" + if [[ ${PIHOLE_DNS_1} == "${strInvalid}" ]] || [[ ${PIHOLE_DNS_2} == "${strInvalid}" ]]; then + whiptail --msgbox --backtitle "Invalid IP" --title "Invalid IP" "One or both entered IP addresses were invalid. Please try again.\n\n DNS Server 1: $PIHOLE_DNS_1\n DNS Server 2: ${PIHOLE_DNS_2}" ${r} ${c} + if [[ ${PIHOLE_DNS_1} == "${strInvalid}" ]]; then + PIHOLE_DNS_1="" fi - if [[ ${piholeDNS2} == "${strInvalid}" ]]; then - piholeDNS2="" + if [[ ${PIHOLE_DNS_2} == "${strInvalid}" ]]; then + PIHOLE_DNS_2="" fi DNSSettingsCorrect=False else - if (whiptail --backtitle "Specify Upstream DNS Provider(s)" --title "Upstream DNS Provider(s)" --yesno "Are these settings correct?\n DNS Server 1: $piholeDNS1\n DNS Server 2: ${piholeDNS2}" ${r} ${c}); then + if (whiptail --backtitle "Specify Upstream DNS Provider(s)" --title "Upstream DNS Provider(s)" --yesno "Are these settings correct?\n DNS Server 1: $PIHOLE_DNS_1\n DNS Server 2: ${PIHOLE_DNS_2}" ${r} ${c}); then DNSSettingsCorrect=True else # If the settings are wrong, the loop continues @@ -590,14 +590,14 @@ version_check_dnsmasq() { echo -n "::: Copying 01-pihole.conf to /etc/dnsmasq.d/01-pihole.conf..." cp ${dnsmasq_pihole_01_snippet} ${dnsmasq_pihole_01_location} echo " done." - sed -i "s/@INT@/$piholeInterface/" ${dnsmasq_pihole_01_location} - if [[ "${piholeDNS1}" != "" ]]; then - sed -i "s/@DNS1@/$piholeDNS1/" ${dnsmasq_pihole_01_location} + sed -i "s/@INT@/$PIHOLE_INTERFACE/" ${dnsmasq_pihole_01_location} + if [[ "${PIHOLE_DNS_1}" != "" ]]; then + sed -i "s/@DNS1@/$PIHOLE_DNS_1/" ${dnsmasq_pihole_01_location} else sed -i '/^server=@DNS1@/d' ${dnsmasq_pihole_01_location} fi - if [[ "${piholeDNS2}" != "" ]]; then - sed -i "s/@DNS2@/$piholeDNS2/" ${dnsmasq_pihole_01_location} + if [[ "${PIHOLE_DNS_2}" != "" ]]; then + sed -i "s/@DNS2@/$PIHOLE_DNS_2/" ${dnsmasq_pihole_01_location} else sed -i '/^server=@DNS2@/d' ${dnsmasq_pihole_01_location} fi @@ -611,16 +611,16 @@ version_check_dnsmasq() { fi #Replace IPv4 and IPv6 tokens in 01-pihole.conf for pi.hole resolution. - if [[ "${IPv4_address}" != "" ]]; then - tmp=${IPv4_address%/*} + if [[ "${IPV4_ADDRESS}" != "" ]]; then + tmp=${IPV4_ADDRESS%/*} sed -i "s/@IPv4@/$tmp/" ${dnsmasq_pihole_01_location} else sed -i '/^address=\/pi.hole\/@IPv4@/d' ${dnsmasq_pihole_01_location} sed -i '/^address=\/@HOSTNAME@\/@IPv4@/d' ${dnsmasq_pihole_01_location} fi - if [[ "${IPv6_address}" != "" ]]; then - sed -i "s/@IPv6@/$IPv6_address/" ${dnsmasq_pihole_01_location} + if [[ "${IPV6_ADDRESS}" != "" ]]; then + sed -i "s/@IPv6@/$IPV6_ADDRESS/" ${dnsmasq_pihole_01_location} else sed -i '/^address=\/pi.hole\/@IPv6@/d' ${dnsmasq_pihole_01_location} sed -i '/^address=\/@HOSTNAME@\/@IPv6@/d' ${dnsmasq_pihole_01_location} @@ -880,11 +880,11 @@ finalExports() { rm ${setupVars} fi { - echo "piholeInterface=${piholeInterface}" - echo "IPv4_address=${IPv4_address}" - echo "IPv6_address=${IPv6_address}" - echo "piholeDNS1=${piholeDNS1}" - echo "piholeDNS2=${piholeDNS2}" + echo "PIHOLE_INTERFACE=${PIHOLE_INTERFACE}" + echo "IPV4_ADDRESS=${IPV4_ADDRESS}" + echo "IPV6_ADDRESS=${IPV6_ADDRESS}" + echo "PIHOLE_DNS_1=${PIHOLE_DNS_1}" + echo "PIHOLE_DNS_2=${PIHOLE_DNS_2}" echo "QUERY_LOGGING=${QUERY_LOGGING}" }>> "${setupVars}" } @@ -916,10 +916,18 @@ installPihole() { accountForRefactor() { # At some point in the future this list can be pruned, for now we'll need it to ensure updates don't break. + # Refactoring of install script has changed the name of a couple of variables. Sort them out here. sed -i 's/IPv4addr/IPv4_address/g' ${setupVars} sed -i 's/piholeIPv6/IPv6_address/g' ${setupVars} + # Account for renaming of global variables. + sed -i 's/piholeInterface/PIHOLE_INTERFACE/g' ${setupVars} + sed -i 's/IPv4_address/IPV4_ADDRESS/g' ${setupVars} + sed -i 's/IPv6_address/IPV6_ADDRESS/g' ${setupVars} + sed -i 's/piholeDNS1/PIHOLE_DNS_1/g' ${setupVars} + sed -i 's/piholeDNS2/PIHOLE_DNS_2/g' ${setupVars} + } updatePihole() { @@ -961,13 +969,13 @@ 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: -IPv4: ${IPv4_address%/*} -IPv6: ${IPv6_address} +IPv4: ${IPV4_ADDRESS%/*} +IPv6: ${IPV6_ADDRESS} If you set a new IP address, you should restart the Pi. The install log is in /etc/pihole. -View the web interface at http://pi.hole/admin or http://${IPv4_address%/*}/admin" ${r} ${c} +View the web interface at http://pi.hole/admin or http://${IPV4_ADDRESS%/*}/admin" ${r} ${c} } update_dialogs() { @@ -1101,8 +1109,8 @@ main() { echo ":::" if [[ "${useUpdateVars}" == false ]]; then echo "::: Installation Complete! Configure your devices to use the Pi-hole as their DNS server using:" - echo "::: ${IPv4_address%/*}" - echo "::: ${IPv6_address}" + echo "::: ${IPV4_ADDRESS%/*}" + echo "::: ${IPV6_ADDRESS}" echo ":::" echo "::: If you set a new IP address, you should restart the Pi." else @@ -1111,7 +1119,7 @@ main() { echo ":::" echo "::: The install log is located at: /etc/pihole/install.log" - echo "::: View the web interface at http://pi.hole/admin or http://${IPv4_address%/*}/admin" + echo "::: View the web interface at http://pi.hole/admin or http://${IPV4_ADDRESS%/*}/admin" } main "$@" From c47c5e466f27b0bb14b88edcd6784ee1fc484971 Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Tue, 1 Nov 2016 09:48:21 +0000 Subject: [PATCH 12/17] consistency --- pihole | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pihole b/pihole index 55d82569..478d995e 100755 --- a/pihole +++ b/pihole @@ -132,12 +132,12 @@ piholeLogging() { if [[ "${1}" == "off" ]] ; then #Disable Logging sed -i 's/^log-queries/#log-queries/' /etc/dnsmasq.d/01-pihole.conf - sed -i 's/^queryLogging=true/queryLogging=false/' /etc/pihole/setupVars.conf + sed -i 's/^QUERY_LOGGING=true/QUERY_LOGGING=false/' /etc/pihole/setupVars.conf echo "::: Logging has been disabled!" elif [[ "${1}" == "on" ]] ; then #Enable logging sed -i 's/^#log-queries/log-queries/' /etc/dnsmasq.d/01-pihole.conf - sed -i 's/^queryLogging=false/queryLogging=true/' /etc/pihole/setupVars.conf + sed -i 's/^QUERY_LOGGING=false/QUERY_LOGGING=true/' /etc/pihole/setupVars.conf echo "::: Logging has been enabled!" else echo "::: Invalid option passed, please pass 'on' or 'off'" From 99057ed859cc973b4bd9fb4329ada73ee29289e5 Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Tue, 1 Nov 2016 09:47:31 +0000 Subject: [PATCH 13/17] Update var names from setupVars.conf in gravity.sh --- gravity.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/gravity.sh b/gravity.sh index 112b42b6..15e157f6 100755 --- a/gravity.sh +++ b/gravity.sh @@ -44,7 +44,7 @@ else fi #Remove the /* from the end of the IPv4addr. -IPv4_address=${IPv4_address%/*} +IPV4_ADDRESS=${IPV4_ADDRESS%/*} # Variables for various stages of downloading and formatting the list basename=pihole @@ -242,22 +242,22 @@ gravity_hostFormat() { # Format domain list as "192.168.x.x domain.com" echo "::: Formatting domains into a HOSTS file..." # Check vars from setupVars.conf to see if we're using IPv4, IPv6, Or both. - if [[ -n "${IPv4_address}" && -n "${IPv6_address}" ]];then + if [[ -n "${IPV4_ADDRESS}" && -n "${IPV6_ADDRESS}" ]];then # Both IPv4 and IPv6 - cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$IPv4_address" -v ipv6addr="$IPv6_address" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> ${piholeDir}/${accretionDisc} + cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$IPV4_ADDRESS" -v ipv6addr="$IPV6_ADDRESS" '{sub(/\r$/,""); print ipv4addr" "$0"\n"ipv6addr" "$0}' >> ${piholeDir}/${accretionDisc} - elif [[ -n "${IPv4_address}" && -z "${IPv6_address}" ]];then + elif [[ -n "${IPV4_ADDRESS}" && -z "${IPV6_ADDRESS}" ]];then # Only IPv4 - cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$IPv4_address" '{sub(/\r$/,""); print ipv4addr" "$0}' >> ${piholeDir}/${accretionDisc} + cat ${piholeDir}/${eventHorizon} | awk -v ipv4addr="$IPV4_ADDRESS" '{sub(/\r$/,""); print ipv4addr" "$0}' >> ${piholeDir}/${accretionDisc} - elif [[ -z "${IPv4_address}" && -n "${IPv6_address}" ]];then + elif [[ -z "${IPV4_ADDRESS}" && -n "${IPV6_ADDRESS}" ]];then # Only IPv6 - cat ${piholeDir}/${eventHorizon} | awk -v ipv6addr="$IPv6_address" '{sub(/\r$/,""); print ipv6addr" "$0}' >> ${piholeDir}/${accretionDisc} + cat ${piholeDir}/${eventHorizon} | awk -v ipv6addr="$IPV6_ADDRESS" '{sub(/\r$/,""); print ipv6addr" "$0}' >> ${piholeDir}/${accretionDisc} - elif [[ -z "${IPv4_address}" && -z "${IPv6_address}" ]];then + elif [[ -z "${IPV4_ADDRESS}" && -z "${IPV6_ADDRESS}" ]];then echo "::: No IP Values found! Please run 'pihole -r' and choose reconfigure to restore values" exit 1 fi From 354309fcad1be97f175bd87efab6c3329c8e5cae Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Tue, 1 Nov 2016 16:46:54 +0000 Subject: [PATCH 14/17] set QUERY_LOGGING default to true --- automated install/basic-install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 7020eeff..79b823b1 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -31,6 +31,7 @@ useUpdateVars=false IPV4_ADDRESS="" IPV6_ADDRESS="" +QUERY_LOGGING=true # Find the rows and columns will default to 80x24 is it can not be detected screen_size=$(stty size 2>/dev/null || echo 24 80) From 3df2ef8587df0f3ca5381f9dc9a083681fe2e7b8 Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Wed, 2 Nov 2016 09:33:17 +0000 Subject: [PATCH 15/17] Cherry picking f6f6f6d, conflict fix --- automated install/basic-install.sh | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 79b823b1..c068fb39 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -932,18 +932,19 @@ accountForRefactor() { } updatePihole() { - accountForRefactor - # Source ${setupVars} for use in the rest of the functions. - . ${setupVars} - # Install base files and web interface - installScripts - installConfigs - CreateLogFile - configureSelinux - installPiholeWeb - installCron - configureFirewall - runGravity + accountForRefactor + # Source ${setupVars} for use in the rest of the functions. + . ${setupVars} + # Install base files and web interface + installScripts + installConfigs + CreateLogFile + configureSelinux + installPiholeWeb + installCron + configureFirewall + finalExports #re-export setupVars.conf to account for any new vars added in new versions + runGravity } configureSelinux() { From f36e4ba336432e480d19e335db6846ef259fa275 Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Wed, 2 Nov 2016 09:35:48 +0000 Subject: [PATCH 16/17] Cherry picking 3f049fa79, conflict fix --- pihole | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/pihole b/pihole index 478d995e..ace0d9a9 100755 --- a/pihole +++ b/pihole @@ -126,24 +126,24 @@ piholeEnable() { } piholeLogging() { + shift - shift - - if [[ "${1}" == "off" ]] ; then - #Disable Logging - sed -i 's/^log-queries/#log-queries/' /etc/dnsmasq.d/01-pihole.conf - sed -i 's/^QUERY_LOGGING=true/QUERY_LOGGING=false/' /etc/pihole/setupVars.conf - echo "::: Logging has been disabled!" - elif [[ "${1}" == "on" ]] ; then - #Enable logging - sed -i 's/^#log-queries/log-queries/' /etc/dnsmasq.d/01-pihole.conf - sed -i 's/^QUERY_LOGGING=false/QUERY_LOGGING=true/' /etc/pihole/setupVars.conf - echo "::: Logging has been enabled!" - else - echo "::: Invalid option passed, please pass 'on' or 'off'" - exit 1 - fi - restartDNS + if [[ "${1}" == "off" ]] ; then + #Disable Logging + sed -i 's/^log-queries/#log-queries/' /etc/dnsmasq.d/01-pihole.conf + sed -i 's/^QUERY_LOGGING=true/QUERY_LOGGING=false/' /etc/pihole/setupVars.conf + pihole -f + echo "::: Logging has been disabled!" + elif [[ "${1}" == "on" ]] ; then + #Enable logging + sed -i 's/^#log-queries/log-queries/' /etc/dnsmasq.d/01-pihole.conf + sed -i 's/^QUERY_LOGGING=false/QUERY_LOGGING=true/' /etc/pihole/setupVars.conf + echo "::: Logging has been enabled!" + else + echo "::: Invalid option passed, please pass 'on' or 'off'" + exit 1 + fi + restartDNS } piholeStatus() { From 50bd8b4a09078f0410d1561ab7304dd385543b25 Mon Sep 17 00:00:00 2001 From: Adam Warner Date: Wed, 2 Nov 2016 13:34:57 +0000 Subject: [PATCH 17/17] Further tweaks to local repo handling --- advanced/Scripts/update.sh | 35 +++++++++++++++++------------- automated install/basic-install.sh | 31 +++++++++++++++----------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/advanced/Scripts/update.sh b/advanced/Scripts/update.sh index 74bd2e54..b4c9728a 100644 --- a/advanced/Scripts/update.sh +++ b/advanced/Scripts/update.sh @@ -20,39 +20,44 @@ readonly PI_HOLE_GIT_URL="https://github.com/pi-hole/pi-hole.git" readonly PI_HOLE_FILES_DIR="/etc/.pihole" is_repo() { - # Use git to check if directory is currently under VCS - local directory="${1}" - cd "${directory}" &> /dev/null || false - $(git status --short &> /dev/null) + # Use git to check if directory is currently under VCS, return the value + local directory="${1}" + git -C "${directory}" status --short &> /dev/null return } - make_repo() { +make_repo() { + local directory="${1}" + local remoteRepo="{$2}" # Remove the non-repod interface and clone the interface - echo -n "::: Cloning $2 into $1..." - rm -rf "${1}" - git clone -q --depth 1 "${2}" "${1}" > /dev/null || exit 1 + echo -n "::: Cloning $remoteRepo into $directory..." + rm -rf "${directory}" + git clone -q --depth 1 "${remoteRepo}" "${directory}" > /dev/null echo " done!" } update_repo() { -# Pull the latest commits +echo "update" && exit 1 + local directory="${1}" + # Pull the latest commits echo -n "::: Updating repo in $1..." - cd "${1}" || exit 1 - git stash -q > /dev/null || exit 1 - git pull -q > /dev/null || exit 1 + cd "${directory}" || exit 1 + git stash -q > /dev/null + git pull -q > /dev/null echo " done!" } getGitFiles() { # Setup git repos for directory and repository passed # as arguments 1 and 2 + local directory="${1}" + local remoteRepo="{$2}" echo ":::" echo "::: Checking for existing repository..." - if is_repo "${1}"; then - update_repo "${1}" + if is_repo "${directory}"; then + update_repo "${directory}" else - make_repo "${1}" "${2}" + make_repo "${directory}" "${remoteRepo}" fi } diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index c068fb39..8e797a20 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -146,24 +146,27 @@ spinner() { } is_repo() { - # Use git to check if directory is currently under VCS - echo -n "::: Checking $1 is a repo..." - cd "${1}" &> /dev/null || return 1 - git status &> /dev/null && echo " OK!"; return 0 || echo " not found!"; return 1 + # Use git to check if directory is currently under VCS, return the value + local directory="${1}" + git -C "${directory}" status --short &> /dev/null + return } make_repo() { + local directory="${1}" + local remoteRepo="${2}" # Remove the non-repod interface and clone the interface - echo -n "::: Cloning $2 into $1..." - rm -rf "${1}" - git clone -q --depth 1 "${2}" "${1}" > /dev/null & spinner $! + echo -n "::: Cloning $remoteRepo into $directory..." + rm -rf "${directory}" + git clone -q --depth 1 "${remoteRepo}" "${directory}" > /dev/null & spinner $! echo " done!" } update_repo() { + local directory="${1}" # Pull the latest commits echo -n "::: Updating repo in $1..." - cd "${1}" || exit 1 + cd "${directory}" || exit 1 git stash -q > /dev/null & spinner $! git pull -q > /dev/null & spinner $! echo " done!" @@ -172,12 +175,14 @@ update_repo() { getGitFiles() { # Setup git repos for directory and repository passed # as arguments 1 and 2 + local directory="${1}" + local remoteRepo="${2}" echo ":::" echo "::: Checking for existing repository..." - if is_repo "${1}"; then - update_repo "${1}" + if is_repo "${directory}"; then + update_repo "${directory}" else - make_repo "${1}" "${2}" + make_repo "${directory}" "${remoteRepo}" fi } @@ -671,13 +676,13 @@ installScripts() { readonly install_dir="/opt/pihole/" echo ":::" - echo -n "::: Installing scripts to ${PI_HOLE_LOCAL_REPO}..." + echo -n "::: Installing scripts from ${PI_HOLE_LOCAL_REPO}..." # Clear out script files from Pi-hole scripts directory. clean_existing "${install_dir}" "${PI_HOLE_FILES}" # Install files from local core repository - if [[ $(is_repo "${PI_HOLE_LOCAL_REPO}") ]]; then + if is_repo "${PI_HOLE_LOCAL_REPO}"; then cd "${PI_HOLE_LOCAL_REPO}" install -o "${USER}" -Dm755 -t /opt/pihole/ gravity.sh install -o "${USER}" -Dm755 -t /opt/pihole/ ./advanced/Scripts/*.sh