aboutsummaryrefslogtreecommitdiff
path: root/git-sh-setup.sh
diff options
context:
space:
mode:
Diffstat (limited to 'git-sh-setup.sh')
-rwxr-xr-xgit-sh-setup.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
new file mode 100755
index 000000000..06d8299ce
--- /dev/null
+++ b/git-sh-setup.sh
@@ -0,0 +1,27 @@
+#!/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"}
+
+die() {
+ echo "$@" >&2
+ exit 1
+}
+
+check_clean_tree() {
+ dirty1_=`git-update-index -q --refresh` && {
+ dirty2_=`git-diff-index --name-only --cached HEAD`
+ case "$dirty2_" in '') : ;; *) (exit 1) ;; esac
+ } || {
+ echo >&2 "$dirty1_"
+ echo "$dirty2_" | sed >&2 -e 's/^/modified: /'
+ (exit 1)
+ }
+}
+
+[ -h "$GIT_DIR/HEAD" ] &&
+[ -d "$GIT_DIR/refs" ] &&
+[ -d "$GIT_OBJECT_DIRECTORY/00" ]