do not segfault if make_cache_entry failed
[gitweb.git] / Documentation / install-doc-quick.sh
index e6601bdd8237bbda80727780434d5b9d337e8bf4..35f440876ed182de319b6d3f0b8296b1a1ede29d 100755 (executable)
@@ -6,8 +6,8 @@ head="$1"
 mandir="$2"
 SUBDIRECTORY_OK=t
 USAGE='<refname> <target directory>'
-. git-sh-setup
-export GIT_DIR
+. "$(git --exec-path)"/git-sh-setup
+cd_to_toplevel
 
 test -z "$mandir" && usage
 if ! git rev-parse --verify "$head^0" >/dev/null; then
@@ -18,14 +18,14 @@ fi
 GIT_INDEX_FILE=`pwd`/.quick-doc.index
 export GIT_INDEX_FILE
 rm -f "$GIT_INDEX_FILE"
+trap 'rm -f "$GIT_INDEX_FILE"' 0
+
 git read-tree $head
 git checkout-index -a -f --prefix="$mandir"/
 
 if test -n "$GZ"; then
-       cd "$mandir"
-       for i in `git ls-tree -r --name-only $head`
-       do
-               gzip < $i > $i.gz && rm $i
-       done
+       git ls-tree -r --name-only $head |
+       xargs printf "$mandir/%s\n" |
+       xargs gzip -f
 fi
 rm -f "$GIT_INDEX_FILE"