Re: [PATCH] Allow help/--help/-h to be run outside of a TopGit repo

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 20, 2008 at 12:46:34PM +0100, martin f. krafft wrote:
> The user ought to be able to call `tg help` from anywhere in the filesystem,
> not just Git repositories, so the help parsing has to happen before the calls
> to git git binary.
> 
> Debian bug: #501982
> 
> Signed-off-by: martin f. krafft <madduck@xxxxxxxxxx>
> 
> ---
>  tg.sh |   28 +++++++++++++++++++++++++---
>  1 files changed, 25 insertions(+), 3 deletions(-)
> 
> diff --git a/tg.sh b/tg.sh
> index 4dcc15e..258f8ce 100644
> --- a/tg.sh
> +++ b/tg.sh
> @@ -235,12 +235,37 @@ 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"
> +}
>  
>  ## Startup
>  
>  [ -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; }
> +

Why is this so complicated? Can't you just do_help from
should_do_help()? The overall semantics seems strange anyway, though -
it seems that 'tg mail --help -r' will try to show help for '-r' instead
of 'mail'.

-- 
				Petr "Pasky" Baudis
People who take cold baths never have rheumatism, but they have
cold baths.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux