chiark / gitweb /
Check for cmddir earlier
[topgit.git] / tg.sh
diff --git a/tg.sh b/tg.sh
index 545e1b8ec3d228cc2569090e651793dc45b77397..9b93f1db17990effa6025b69fc62806c0b718f3f 100644 (file)
--- a/tg.sh
+++ b/tg.sh
@@ -222,30 +222,38 @@ do_help()
                        sep="|"
                done
 
-               echo "TopGit v0.3 - A different patch queue manager"
+               echo "TopGit v0.5 - A different patch queue manager"
                echo "Usage: tg [-r REMOTE] ($cmds|help) ..."
-       elif [ -r "@sharedir@/tg-$1.txt" ] ; then
-               cat "@sharedir@/tg-$1.txt"
+       elif [ -r "@cmddir@"/tg-$1 ] ; then
+               @cmddir@/tg-$1 -h || :
+               echo
+               if [ -r "@sharedir@/tg-$1.txt" ] ; then
+                       cat "@sharedir@/tg-$1.txt"
+               fi
        else
                echo "`basename $0`: no help for $1" 1>&2
        fi
 }
 
 
+## Startup
+
+[ -d "@cmddir@" ] ||
+       die "No command directory: '@cmddir@'"
+
 ## Initial setup
 
 set -e
 git_dir="$(git rev-parse --git-dir)"
 root_dir="$(git rev-parse --show-cdup)"; root_dir="${root_dir:-.}"
+# Make sure root_dir doesn't end with a trailing slash.
+root_dir="${root_dir%/}"
 base_remote="$(git config topgit.remote 2>/dev/null)" || :
 tg="tg"
 # make sure merging the .top* files will always behave sanely
 setup_ours
 setup_hook "pre-commit"
 
-[ -d "@cmddir@" ] ||
-       die "No command directory: '@cmddir@'"
-
 ## Dispatch
 
 # We were sourced from another script for our utility functions;
@@ -264,7 +272,7 @@ shift
 case "$cmd" in
 help|--help|-h)
        do_help "$1"
-       exit 1;;
+       exit 0;;
 --hooks-path)
        # Internal command
        echo "@hooksdir@";;