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
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
[ -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
shift
case "$cmd" in
-help|--help|-h)
- do_help "$1"
- exit 0;;
--hooks-path)
# Internal command
echo "@hooksdir@";;