summaryrefslogtreecommitdiff
path: root/git-sh-setup.sh
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-11-24 08:12:11 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-11-25 21:49:17 (GMT)
commitae2b0f15180d4b044828c836bcab6a990efa5c8e (patch)
treef316bfd81eaa2064c1d9e01a336eaed8d7a5bd4f /git-sh-setup.sh
parente8cc80d03934cc607e3a4d89a05350c238dbf9c5 (diff)
downloadgit-ae2b0f15180d4b044828c836bcab6a990efa5c8e.zip
git-ae2b0f15180d4b044828c836bcab6a990efa5c8e.tar.gz
git-ae2b0f15180d4b044828c836bcab6a990efa5c8e.tar.bz2
git-sh-setup: die if outside git repository.
Now all the users of this script detect its exit status and die, complaining that it is outside git repository. So move the code that dies from all callers to git-sh-setup script. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-sh-setup.sh')
-rwxr-xr-xgit-sh-setup.sh15
1 files changed, 9 insertions, 6 deletions
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index dbb9884..e343349 100755
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -1,10 +1,9 @@
#!/bin/sh
#
-# Set up GIT_DIR and GIT_OBJECT_DIRECTORY
-# and return true if everything looks ok
-#
-: ${GIT_DIR=.git}
-: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
+# This is included in commands that either have to be run from the toplevel
+# of the repository, or with GIT_DIR environment variable properly.
+# If the GIT_DIR does not look like the right correct git-repository,
+# it dies.
# Having this variable in your environment would break scripts because
# you would cause "cd" to be be taken to unexpected places. If you
@@ -12,6 +11,9 @@
# exporting it.
unset CDPATH
+: ${GIT_DIR=.git}
+: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
+
die() {
echo >&2 "$@"
exit 1
@@ -22,4 +24,5 @@ refs/*) : ;;
*) false ;;
esac &&
[ -d "$GIT_DIR/refs" ] &&
-[ -d "$GIT_OBJECT_DIRECTORY/" ]
+[ -d "$GIT_OBJECT_DIRECTORY/" ] ||
+ die "Not a git repository."