X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=tg.sh;h=838dc49185be1fa81b288830ca950725d469ae10;hb=34a491dd56a800d2ff7c1442eaca9489b2a6bd36;hp=87d34247b680f9d02d721745d5fe05d4810902f8;hpb=6a1c58e7652027c584b14cd0037ad5eee8851e5c;p=topgit.git diff --git a/tg.sh b/tg.sh index 87d3424..838dc49 100644 --- a/tg.sh +++ b/tg.sh @@ -378,8 +378,8 @@ do_help() setup_pager @cmddir@/tg-$1 -h 2>&1 || : echo - if [ -r "@sharedir@/tg-$1.txt" ] ; then - cat "@sharedir@/tg-$1.txt" + if [ -r "@docdir@/tg-$1.txt" ] ; then + cat "@docdir@/tg-$1.txt" fi else echo "`basename $0`: no help for $1" 1>&2 @@ -388,6 +388,29 @@ do_help() fi } +# Check whether we are supposed to output the help message +should_do_help() +{ + # we are being sourced for utility functions, never run help + [ -z "$tg__include" ] || return 1 + + local prev + while [ -n "$1" ]; do + case "$1" in + help|--help|-h) + shift + echo "${1:-$prev}" + return 0 + esac + prev="$1" + shift + done + + # run help when there was no previous topic, meaning that there where + # no arguments at all + test -z "$prev" +} + ## Pager stuff # isatty FD @@ -441,6 +464,9 @@ get_temp() [ -d "@cmddir@" ] || die "No command directory: '@cmddir@'" +# check if we should run help and get the topic while we're at it +help_topic="$(should_do_help "$@")" && { do_help "$help_topic"; exit 0; } + ensure_git_repo_or_die ## Initial setup @@ -482,9 +508,6 @@ cmd="$1" shift case "$cmd" in -help|--help|-h) - do_help "$1" - exit 0;; --hooks-path) # Internal command echo "@hooksdir@";;