From 1349f584be5143291e093d422fe2da5f9957e665 Mon Sep 17 00:00:00 2001 From: Leo Date: Thu, 21 Jan 2016 17:14:55 -0500 Subject: [PATCH] Use Sudo Detection from Installer in Gravity.sh Also Prevents errors from being thrown when gravity.sh is run as root and the user doesn't have sudo installed (just like install.sh does) --- gravity.sh | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/gravity.sh b/gravity.sh index fa94aabe..bc1efbc9 100755 --- a/gravity.sh +++ b/gravity.sh @@ -10,8 +10,24 @@ # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. +# Run this script as root or under sudo +if [[ $EUID -eq 0 ]];then + echo "You are root." +else + echo "::: sudo will be used for the install." + # Check if it is actually installed + # If it isn't, exit because the install cannot complete + if [[ $(dpkg-query -s sudo) ]];then + export SUDO="sudo" + else + echo "::: Please install sudo or run this as root." + exit 1 + fi +fi + piholeIPfile=/tmp/piholeIP piholeIPv6file=/etc/pihole/.useIPv6 + 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) @@ -70,8 +86,8 @@ function gravity_collapse() { # Temporary hack to allow non-root access to pihole directory # Will update later, needed for existing installs, new installs should # create this directory as non-root - sudo chmod 777 $piholeDir - find "$piholeDir" -type f -exec sudo chmod 666 {} \; + $SUDO chmod 777 $piholeDir + find "$piholeDir" -type f -exec $SUDO chmod 666 {} \; else echo "** Creating pihole directory..." mkdir $piholeDir @@ -247,10 +263,10 @@ function gravity_reload() { if [[ $dnsmasqPid ]]; then # service already running - reload config - sudo kill -HUP $dnsmasqPid + $SUDO kill -HUP $dnsmasqPid else # service not running, start it up - sudo service dnsmasq start + $SUDO service dnsmasq start fi }