From: SZEDER Gábor Date: Wed, 11 Apr 2012 13:56:14 GMT Subject: Re: [PATCH 2/2] completion: Use parse-options raw output for simple long options Message-ID: <20120411135614.GQ2289@goldbirke> In-Reply-To: <1334140165-24958-3-git-send-email-bebarino@gmail.com> Hi, On Wed, Apr 11, 2012 at 03:29:25AM -0700, Stephen Boyd wrote: > Now that parse-options supports generating lists of long options for any > parse-optified git program we can remove the hand-coded lists in the > completion script. Replace these lists with code to generate the lists > lazily when a user tab completes that specific command. Unforunately, > doing lazy evalution takes more lines than before, but the benefit is we > reduce the amount of trivial patches to update the script for new and/or > removed options. It also mildly encourages the migration of git commands > to the parse-options API. > > Signed-off-by: Stephen Boyd > --- > > Is there some way to compute these lists with some magical function instead > of duplicating that logic over and over? Maybe a function like this: __git_compute_command_options () { local varname="__git_${@//[ -]/_}_options" eval "test -n \"\$$varname\" || $varname=\"$(git $@ --dump-raw-long-options)\"" } And then in each completion function just need to call this function with the command (and possibly subcommand) as parameter: __git_compute_command_options add Best, Gábor