On Tue, Nov 17, 2015 at 12:10:35AM +0000, Keller, Jacob E wrote: > On Mon, 2015-11-16 at 18:50 -0500, Eric Sunshine wrote: > > It should be possible to extract the alias within the shell itself > > without a separate process. For instance: > > > > read alias rest > > > > will leave the first token in $alias and the remainder of the line in > > $rest, and it's all done within the shell process. > > I'll look into this :) My reason for asking is concern about scripts possibly breaking if someone comes along and wants to "fix" --dump-aliases to also dump the alias expansions. One possibility is just to punt today and say that when that feature is needed in the future, then that someone can add a --verbose option to complement --dump-aliases which would emit the alias expansions as well. One nice thing about punting at this point is that we don't (today) have to define a format for the output of the expansions. If we did want to think about it, one verbose, non-ambiguous format would be to show the alias name on a line by itself, and each expansion value on a line by itself indented by a tab. For instance: managers bob fred devs jane john > > Also, shouldn't --list-aliases (or --dump-aliases) be mutually > > exclusive with many of the other options? New tests would check such > > exclusivity as well. > > I am at a loss for how to do that correctly in the perl. Help would be > appreciated here. Since git-send-email.perl already configures GetOpt::Long with the 'pass_through' option, one possibility would be to invoke GetOptions() once for --list-aliases (or --dump-aliases), and then again for the normal options. Doing so may be a bit ugly; on the other hand, it does indicate pretty clearly that --list-aliases is a distinct "mode" of operation. On top of your patch, it might look something like this: --- 8< --- diff --git a/git-send-email.perl b/git-send-email.perl index ee14894..cada5ea 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -296,6 +296,12 @@ $SIG{INT} = \&signal_handler; my $help; my $rc = GetOptions("h" => \$help, + "list-aliases" => \$list_aliases); +usage() unless $rc; +die "--list-aliases incompatible with other options\n" + if !$help and $list_aliases and @ARGV; + +$rc = GetOptions( "sender|from=s" => \$sender, "in-reply-to=s" => \$initial_reply_to, "subject=s" => \$initial_subject, @@ -349,7 +355,6 @@ my $rc = GetOptions("h" => \$help, "force" => \$force, "xmailer!" => \$use_xmailer, "no-xmailer" => sub {$use_xmailer = 0}, - "list-aliases" => \$list_aliases, ); usage() if $help; --- 8< --- Though, it may be overkill for this minor use-case. -- 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