This commit is contained in:
Jeffrey Townsend
2019-03-04 13:40:22 -08:00
parent 1af0afb6d1
commit ddc89a3325

38
tools/scripts/gitroot Executable file
View File

@@ -0,0 +1,38 @@
#!/bin/sh
#
######################################################################
#
# gitroot
#
# Translate $1 or $PWD into the top-level workspace directory
# containing .git
#
######################################################################
if test $# -gt 0; then
dir=$(realpath $1)
else
dir=$(pwd)
fi
while test $dir != /; do
if test -d $dir/.git; then
echo $dir
break
fi
if test -f $dir/.git; then
ndir=$(sed -n -e 's/^gitdir: \(.*\)/\1/p' $dir/.git)
if test "$ndir"; then
ndir=$(cd $dir && cd $ndir && pwd)
ndir=${ndir%/.git/*}
if test -d "$ndir"; then
dir=$ndir
continue
fi
fi
fi
dir=${dir%/*}
done
if test "$dir" = "/"; then
echo "*** cannot find git root" 1>&2
exit 1
fi