X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=tg.sh;h=afdcdda73465812fdf9c260ba10c202aef4515d1;hb=c7692a249e6ed4cac8efd97279aee1023a6adf3b;hp=7005f98c882bde7c97094862aeb88b07b28de390;hpb=28212dd015e70eae4b2b08e5f1cb93bca2d63781;p=topgit.git diff --git a/tg.sh b/tg.sh index 7005f98..afdcdda 100644 --- a/tg.sh +++ b/tg.sh @@ -222,7 +222,7 @@ do_help() sep="|" done - echo "TopGit v0.4 - A different patch queue manager" + echo "TopGit v0.5 - A different patch queue manager" echo "Usage: tg [-r REMOTE] ($cmds|help) ..." elif [ -r "@cmddir@"/tg-$1 ] ; then @cmddir@/tg-$1 -h || : @@ -236,20 +236,24 @@ do_help() } +## 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; @@ -257,18 +261,24 @@ setup_hook "pre-commit" [ -z "$tg__include" ] || return 0 if [ "$1" = "-r" ]; then - shift; base_remote="$1"; shift + shift + if [ -z "$1" ]; then + echo "Option -r requires an argument." >&2 + do_help + exit 1 + fi + base_remote="$1"; shift tg="$tg -r $base_remote" fi cmd="$1" -[ -n "$cmd" ] || die "He took a duck in the face at two hundred and fifty knots" +[ -n "$cmd" ] || { do_help; exit 1; } shift case "$cmd" in help|--help|-h) do_help "$1" - exit 1;; + exit 0;; --hooks-path) # Internal command echo "@hooksdir@";;