aboutsummaryrefslogtreecommitdiffstats
path: root/git-sh-setup.sh
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-11-24 00:12:11 -0800
committerJunio C Hamano <junkio@cox.net>2005-11-25 13:49:17 -0800
commitae2b0f15180d4b044828c836bcab6a990efa5c8e (patch)
treef316bfd81eaa2064c1d9e01a336eaed8d7a5bd4f /git-sh-setup.sh
parente8cc80d03934cc607e3a4d89a05350c238dbf9c5 (diff)
downloadgit-ae2b0f15180d4b044828c836bcab6a990efa5c8e.tar.gz
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 dbb98842bf..e343349c00 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."