[X2Go-Commits] [buildscripts] 12/26: bin/build-{deb, rpm}-package: rewrite prepare_workspace to error out if switching to the directory is not possible.

git-admin at x2go.org git-admin at x2go.org
Sun Nov 13 20:35:46 CET 2016


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository buildscripts.

commit a1a879a34978d10c94e321a7b570ad7b9e1e571d
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Sun Nov 13 19:30:07 2016 +0100

    bin/build-{deb,rpm}-package: rewrite prepare_workspace to error out if switching to the directory is not possible.
---
 bin/build-deb-package |   40 ++++++++++++++++++++++++----------------
 bin/build-rpm-package |   39 ++++++++++++++++++++++++---------------
 2 files changed, 48 insertions(+), 31 deletions(-)

diff --git a/bin/build-deb-package b/bin/build-deb-package
index 8f89693..c172286 100755
--- a/bin/build-deb-package
+++ b/bin/build-deb-package
@@ -133,24 +133,32 @@ set_vars() {
 
 prepare_workspace() {
 	# make sure our local working copy is up to date...
-
 	if [ -d "${PROJECT_DIR}/.git" ]; then
-		cd "$PROJECT_DIR" && git reset --hard
-		git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}"
-		git pull origin "${CHECKOUT}"
-		git fetch origin upstream:upstream || true
-		git fetch origin pristine-tar:pristine-tar || true
-		# and again, get the ${CHECKOUT} refspec in pure state
-		git reset --hard
-		git clean -df
+		cd "${PROJECT_DIR}" && {
+			git reset --hard
+			git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}"
+			git pull origin "${CHECKOUT}"
+			git fetch origin upstream:upstream || true
+			git fetch origin pristine-tar:pristine-tar || true
+			# and again, get the ${CHECKOUT} refspec in pure state
+			git reset --hard
+			git clean -df
+		} || {
+			echo "Unable to switch to project directory \"${PROJECT_DIR}\". Check the permissions." >&2
+			exit 1
+		}
 	else
-		cd "$(dirname "${PROJECT_DIR}")"
-		git clone "git://${GIT_HOSTNAME}/${PROJECT_PATH}.git"
-		cd "${PROJECT}"
-		git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}"
-		git fetch origin upstream:upstream
-		git fetch origin pristine-tar:pristine-tar || true
-		git clean -df
+		cd "$(dirname "${PROJECT_DIR}")" && {
+			git clone "git://${GIT_HOSTNAME}/${PROJECT_PATH}.git"
+			cd "${PROJECT}"
+			git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}"
+			git fetch origin upstream:upstream
+			git fetch origin pristine-tar:pristine-tar || true
+			git clean -df
+		} || {
+			echo "Unable to switch to project directory \"$(dirname "${PROJECT_DIR}")\". Does it exist? Check the permissions." >&2
+			exit 1
+		}
 	fi
 
 	GIT_OBJECT_ID="$(git rev-parse --verify HEAD)"
diff --git a/bin/build-rpm-package b/bin/build-rpm-package
index 890ae66..c6735f4 100755
--- a/bin/build-rpm-package
+++ b/bin/build-rpm-package
@@ -570,22 +570,31 @@ get_extra_repository () {
 prepare_workspace() {
 	# make sure our local working copy is up to date...
 	if [ -d "${PROJECT_DIR}/.git" ]; then
-		cd "${PROJECT_DIR}" && git reset --hard
-		git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}"
-		git pull origin "${CHECKOUT}"
-		git fetch origin upstream:upstream || true
-		git fetch origin pristine-tar:pristine-tar || true
-		# and again, get the ${CHECKOUT} refspec in pure state
-		git reset --hard
-		git clean -df
+		cd "${PROJECT_DIR}" && {
+			git reset --hard
+			git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}"
+			git pull origin "${CHECKOUT}"
+			git fetch origin upstream:upstream || true
+			git fetch origin pristine-tar:pristine-tar || true
+			# and again, get the ${CHECKOUT} refspec in pure state
+			git reset --hard
+			git clean -df
+		} || {
+			echo "Unable to switch to project directory \"${PROJECT_DIR}\". Check the permissions." >&2
+			exit 1
+		}
 	else
-		cd "$(dirname "${PROJECT_DIR}")"
-		git clone "git://${GIT_HOSTNAME}/${PROJECT_PATH}.git"
-		cd "${PROJECT}"
-		git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}"
-		git fetch origin upstream:upstream
-		git fetch origin pristine-tar:pristine-tar || true
-		git clean -df
+		cd "$(dirname "${PROJECT_DIR}")" && {
+			git clone "git://${GIT_HOSTNAME}/${PROJECT_PATH}.git"
+			cd "${PROJECT}"
+			git checkout --force "${CHECKOUT}" || git checkout --force -b "${CHECKOUT}"
+			git fetch origin upstream:upstream
+			git fetch origin pristine-tar:pristine-tar || true
+			git clean -df
+		} || {
+			echo "Unable to switch to project directory \"$(dirname "${PROJECT_DIR}")\". Does it exist? Check the permissions." >&2
+			exit 1
+		}
 	fi
 
 	GIT_OBJECT_ID="$(git rev-parse --verify HEAD)"

--
Alioth's /srv/git/code.x2go.org/buildscripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/buildscripts.git


More information about the x2go-commits mailing list