From e4295f5d3c0777315a7c832f7a927a708f25f451 Mon Sep 17 00:00:00 2001 From: Promofaux Date: Fri, 26 Aug 2016 22:45:38 +0100 Subject: [PATCH] Move exporting the setupConf files to a function to be run at the end of the script only. If script is cancelled, then they are not written. Simples. Also I'm surprised nobody noticed the duplicate installPihole() function :S --- automated install/basic-install.sh | 57 +++++++----------------------- 1 file changed, 13 insertions(+), 44 deletions(-) diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 4e2df395..756d1427 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -195,11 +195,9 @@ chooseInterface() { piholeInterface=${desiredInterface} echo "::: Using interface: $piholeInterface" echo "${piholeInterface}" > /tmp/piholeINT - echo "piholeInterface=${piholeInterface}" >> ${setupVars} done else echo "::: Cancel selected, exiting...." - ${SUDO} rm ${setupVars} exit 1 fi @@ -230,7 +228,6 @@ use4andor6() { if [ ${useIPv4} ] && [ ! ${useIPv6} ]; then getStaticIPv4Settings setStaticIPv4 - ${SUDO} echo "IPv4addr=${IPv4addr}" >> ${setupVars} echo "::: Using IPv4 on $IPv4addr" echo "::: IPv6 will NOT be used." fi @@ -242,7 +239,6 @@ use4andor6() { if [ ${useIPv4} ] && [ ${useIPv6} ]; then getStaticIPv4Settings setStaticIPv4 - ${SUDO} echo "IPv4addr=${IPv4addr}" >> ${setupVars} useIPv6dialog echo "::: Using IPv4 on $IPv4addr" echo "::: Using IPv6 on $piholeIPv6" @@ -250,13 +246,11 @@ use4andor6() { if [ ! ${useIPv4} ] && [ ! ${useIPv6} ]; then echo "::: Cannot continue, neither IPv4 or IPv6 selected" echo "::: Exiting" - ${SUDO} rm ${setupVars} exit 1 fi cleanupIPv6 else echo "::: Cancel selected. Exiting..." - ${SUDO} rm ${setupVars} exit 1 fi } @@ -264,7 +258,6 @@ use4andor6() { useIPv6dialog() { # Show the IPv6 address used for blocking piholeIPv6=$(ip -6 route get 2001:4860:4860::8888 | awk -F " " '{ for(i=1;i<=NF;i++) if ($i == "src") print $(i+1) }') - ${SUDO} echo "piholeIPv6=${piholeIPv6}" >> ${setupVars} whiptail --msgbox --backtitle "IPv6..." --title "IPv6 Supported" "$piholeIPv6 will be used to block ads." ${r} ${c} ${SUDO} touch /etc/pihole/.useIPv6 @@ -314,14 +307,12 @@ It is also possible to use a DHCP reservation, but if you are going to do that, # Cancelling gateway settings window ipSettingsCorrect=False echo "::: Cancel selected. Exiting..." - ${SUDO} rm ${setupVars} exit 1 fi else # Cancelling IPv4 settings window ipSettingsCorrect=False echo "::: Cancel selected. Exiting..." - ${SUDO} rm ${setupVars} exit 1 fi done @@ -379,7 +370,6 @@ setStaticIPv4() { fi else echo "::: Warning: Unable to locate configuration file to set static IPv4 address!" - ${SUDO} rm ${setupVars} exit 1 fi } @@ -464,7 +454,6 @@ setDNS(){ fi else echo "::: Cancel selected, exiting...." - ${SUDO} rm ${setupVars} exit 1 fi if [[ ${piholeDNS1} == "$strInvalid" ]] || [[ ${piholeDNS2} == "$strInvalid" ]]; then @@ -489,12 +478,8 @@ setDNS(){ esac else echo "::: Cancel selected. Exiting..." - ${SUDO} rm ${setupVars} exit 1 fi - - ${SUDO} echo "piholeDNS1=${piholeDNS1}" >> ${setupVars} - ${SUDO} echo "piholeDNS2=${piholeDNS2}" >> ${setupVars} } versionCheckDNSmasq(){ @@ -807,36 +792,19 @@ configureFirewall() { fi } -installPihole() { - # Install base files and web interface - checkForDependencies # done - stopServices - setUser - ${SUDO} mkdir -p /etc/pihole/ - if [ ! -d "/var/www/html" ]; then - ${SUDO} mkdir -p /var/www/html - fi - ${SUDO} chown ${LIGHTTPD_USER}:${LIGHTTPD_GROUP} /var/www/html - ${SUDO} chmod 775 /var/www/html - ${SUDO} usermod -a -G ${LIGHTTPD_GROUP} pihole - if [ -x "$(command -v lighty-enable-mod)" ]; then - ${SUDO} lighty-enable-mod fastcgi fastcgi-php > /dev/null - else - printf "\n:::\tWarning: 'lighty-enable-mod' utility not found. Please ensure fastcgi is enabled if you experience issues.\n" - fi - - getGitFiles - installScripts - installConfigs - installConfigs - CreateLogFile - configureSelinux - installPiholeWeb - installCron - runGravity - configureFirewall +finalExports() { + #If it already exists, lets overwrite it with the new values. + if [[ -f ${setupVars} ]];then + ${SUDO} rm ${setupVars} + fi + ${SUDO} echo "piholeInterface=${piholeInterface}" >> ${setupVars} + ${SUDO} echo "IPv4addr=${IPv4addr}" >> ${setupVars} + ${SUDO} echo "piholeIPv6=${piholeIPv6}" >> ${setupVars} + ${SUDO} echo "piholeDNS1=${piholeDNS1}" >> ${setupVars} + ${SUDO} echo "piholeDNS2=${piholeDNS2}" >> ${setupVars} } + installPihole() { # Install base files and web interface checkForDependencies # done @@ -865,6 +833,7 @@ installPihole() { installCron runGravity configureFirewall + finalExports } updatePihole() { @@ -967,7 +936,7 @@ if [[ ${useUpdateVars} == false ]]; then # Verify there is enough disk space for the install verifyFreeDiskSpace ${SUDO} mkdir -p /etc/pihole/ - ${SUDO} echo "" > ${setupVars} + # Find IP used to route to outside world findIPRoute # Find interfaces and let the user choose one