From 1d64ad1ccd13c485c7def7d0fa27acf5a1979e63 Mon Sep 17 00:00:00 2001 From: Dan Schaper Date: Wed, 2 Nov 2016 10:39:27 -0700 Subject: [PATCH] Stash all changed files, clean directory and pull updates. --- advanced/Scripts/update.sh | 16 ++++++++++------ pihole | 21 +++++++++++---------- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/advanced/Scripts/update.sh b/advanced/Scripts/update.sh index 549e5176..c12248a9 100644 --- a/advanced/Scripts/update.sh +++ b/advanced/Scripts/update.sh @@ -28,8 +28,8 @@ is_repo() { prep_dirs() { # Prepare directory for local repository building - local dir_to_clean="${1}" - rm -rf "${dir_to_clean}" &> /dev/null + local directory="${1}" + rm -rf "${directory}" &> /dev/null return } @@ -48,9 +48,13 @@ update_repo() { local dest_dir="${1}" # Pull the latest commits echo -n "::: Updating repository in ${dest_dir}..." - cd "${1}" || exit 1 - git stash -q > /dev/null || exit $? - git pull -q > /dev/null || exit $? + + # Stash all files not tracked for later retrieval + git -C "${dest_dir}" stash --all --quiet &> /dev/null || false + # Force a clean working directory for cloning + git -C "${dest_dir}" clean --force -d &> /dev/null || false + # Fetch latest changes and apply + git -C "${dest_dir}" pull --quiet &> /dev/null || false echo " done!" } @@ -62,7 +66,7 @@ getGitFiles() { echo ":::" echo "::: Checking for existing repository..." if is_repo "${directory}"; then - update_repo "${directory}" + update_repo "${directory}" || (echo "*** Error: Could not update local repository. Contact support."; exit 1) else make_repo "${directory}" "${remoteRepo}" fi diff --git a/pihole b/pihole index 758aa660..83046675 100755 --- a/pihole +++ b/pihole @@ -10,6 +10,7 @@ # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. +PI_HOLE_SCRIPT_DIR="/opt/pihole" # Must be root to use this tool if [[ ! $EUID -eq 0 ]];then if [ -x "$(command -v sudo)" ];then @@ -22,27 +23,27 @@ if [[ ! $EUID -eq 0 ]];then fi whitelistFunc() { - /opt/pihole/list.sh "$@" + "${PI_HOLE_SCRIPT_DIR}"/list.sh "$@" exit 0 } blacklistFunc() { - /opt/pihole/list.sh "$@" + "${PI_HOLE_SCRIPT_DIR}"/list.sh "$@" exit 0 } debugFunc() { - /opt/pihole/piholeDebug.sh + "${PI_HOLE_SCRIPT_DIR}"/piholeDebug.sh exit 0 } flushFunc() { - /opt/pihole/piholeLogFlush.sh + "${PI_HOLE_SCRIPT_DIR}"/piholeLogFlush.sh exit 0 } updatePiholeFunc() { - /opt/pihole/update.sh + "${PI_HOLE_SCRIPT_DIR}"/update.sh exit 0 } @@ -52,12 +53,12 @@ reconfigurePiholeFunc() { } updateGravityFunc() { - /opt/pihole/gravity.sh "$@" + "${PI_HOLE_SCRIPT_DIR}"/gravity.sh "$@" exit 0 } setupLCDFunction() { - /opt/pihole/setupLCD.sh + "${PI_HOLE_SCRIPT_DIR}"/setupLCD.sh exit 0 } @@ -76,19 +77,19 @@ queryFunc() { chronometerFunc() { shift - /opt/pihole/chronometer.sh "$@" + "${PI_HOLE_SCRIPT_DIR}"/chronometer.sh "$@" exit 0 } uninstallFunc() { - /opt/pihole/uninstall.sh + "${PI_HOLE_SCRIPT_DIR}"/uninstall.sh exit 0 } versionFunc() { shift - /opt/pihole/version.sh "$@" + "${PI_HOLE_SCRIPT_DIR}"/version.sh "$@" exit 0 }