[PATCH v3] send-email: Add simple email aliases format
- From
Allen Hubbe <allenbh@gmail.com>
- Date
- May 22, 2015, 03:35 UTC
- Message-ID
- <8bcd133c3595ee6c50dfc815c5901b32eb88d88b.1432265641.git.allenbh@gmail.com>
This format is more simple than the other alias file formats, so it may be preferred by some users. The format is as follows.
<alias>: <address|alias>[, <address|alias>...]
Aliases are specified one per line. There is no line splitting. Anything on a line after and including a `#` symbol is considered a comment, and is ignored. Blank lines are ignored.
Example of the 'simple' format:
alice: Alice W Land <awol@example.com> bob: Robert Bobbyton <bob@example.com> # this is a comment # this is also a comment chloe: chloe@example.com abgroup: alice, bob # comment after an alias bcgrp: bob, chloe, Other <o@example.com>
Signed-off-by: Allen Hubbe <allenbh@gmail.com> ---
Notes:
This v3 extends the syntax to allow blank lines, and comments. The test
case is extended with comments added to alias file input.
The Documentation/git-send-email.txt is updated with a description of
the simple format. A note is added for the other formats, directing
readers to check the documentation of the email clients for a
description.Documentation/git-send-email.txt | 2 +- git-send-email.perl | 6 +++++- t/t9001-send-email.sh | 24 ++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt index 804554609def..99583c4f8969 100644 --- a/Documentation/git-send-email.txt +++ b/Documentation/git-send-email.txt @@ -383,7 +383,7 @@ sendemail.aliasesFile:: sendemail.aliasFileType:: Format of the file(s) specified in sendemail.aliasesFile. Must be - one of 'mutt', 'mailrc', 'pine', 'elm', or 'gnus'. + one of 'mutt', 'mailrc', 'pine', 'elm', 'gnus', or 'simple'. sendemail.multiEdit:: If true (default), a single editor instance will be spawned to edit diff --git a/git-send-email.perl b/git-send-email.perl index e1e9b1460ced..25d72e8db8bf 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -515,7 +515,11 @@ my %parse_alias = ( $aliases{$alias} = [ split_addrs($addr) ]; } } }, - + simple => sub { my $fh = shift; while (<$fh>) { + if (/^\s*(\S+)\s*:\s*(.+)$/) { + my ($alias, $addr) = ($1, $2); + $aliases{$alias} = [ split_addrs($addr) ]; + }}}, gnus => sub { my $fh = shift; while (<$fh>) { if (/\(define-mail-alias\s+"(\S+?)"\s+"(\S+?)"\)/) { $aliases{$1} = [ $2 ]; diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 7be14a4e37f7..bbb73cdf8bec 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -1548,6 +1548,30 @@ test_expect_success $PREREQ 'sendemail.aliasfile=~/.mailrc' ' 2>errors >out && grep "^!someone@example\.org!$" commandline1 ' +test_expect_success $PREREQ 'sendemail.aliasfiletype=simple' ' + clean_fake_sendmail && rm -fr outdir && + git format-patch -1 -o outdir && + { + echo "alice: Alice W Land <awol@example.com>" + echo "bob: Robert Bobbyton <bob@example.com>" + echo "chloe: chloe@example.com" + echo "abgroup: alice, bob" + echo "bcgrp: bob, chloe, Other <o@example.com>" + } >~/.tmp-email-aliases && + git config --replace-all sendemail.aliasesfile \ + "$(pwd)/.tmp-email-aliases" && + git config sendemail.aliasfiletype simple && + git send-email \ + --from="Example <nobody@example.com>" \ + --to=alice --to=bcgrp \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + grep "^!awol@example\.com!$" commandline1 && + grep "^!bob@example\.com!$" commandline1 && + grep "^!chloe@example\.com!$" commandline1 && + grep "^!o@example\.com!$" commandline1 +' do_xmailer_test () { expected=$1 params=$2 &&
-- 2.3.4