git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 4/4] send-email: add support for mutt aliases files

From
EWEric Wong <normalperson@yhbt.net>
Date
Mar 25, 2006, 10:43 UTC
Message-ID
<11432834111445-git-send-email-normalperson@yhbt.net>
In-Reply-To
<11432834101430-git-send-email-normalperson@yhbt.net>

I got rid of the Email::Valid dependency since writing RFC-correct email addresses is probably not a problem for most users.

In my experience, misspelled usernames are a much bigger problem. I am prone to doing things like leaving out the 'k' in Junio's email address and other things that Email::Valid can't catch.

Since I use mutt and the aliases file is pretty simple, I've added basic support for mutt alias files.

To setup git-send-email to use a mutt aliases file for a repo, do this:

  git-repo-config sendemail.muttaliases <mutt_alias_file_path>

More email clients/address book formats can easily be supported in the future.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
 git-send-email.perl |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
8bc65d178dd755ecd1f3c038b975b9bbe58c1015
diff --git a/git-send-email.perl b/git-send-email.perl
index 73bba19..207b1fb 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -89,6 +89,15 @@ sub gitvar_ident {
 my ($author) = gitvar_ident('GIT_AUTHOR_IDENT');
 my ($committer) = gitvar_ident('GIT_COMMITTER_IDENT');
 
+my %aliases;
+if (my $mutt_aliases = `git-repo-config sendemail.muttaliases`) {
+    chomp $mutt_aliases;
+    open my $ma, '<', $mutt_aliases or die "opening $mutt_aliases: $!\n";
+    while (<$ma>) { if (/^alias\s+(\S+)\s+(.*)/) { $aliases{$1} = $2 } }
+    close $ma;
+}
+# aliases for more mail clients can be supported here:
+
 my $prompting = 0;
 if (!defined $from) {
 	$from = $author || $committer;
@@ -112,6 +121,9 @@ if (!@to) {
 	$prompting++;
 }
 
+@to = map { $aliases{$_} || $_ } @to;
+@initial_cc = map { $aliases{$_} || $_ } @initial_cc;
+
 if (!defined $initial_subject && $compose) {
 	do {
 		$_ = $term->readline("What subject should the emails start with? ",
-- 
1.2.4.gb622a
Previous: Martin LanghoffNext: Junio C Hamano
Message 12 of 24 in “send-email: dependency removal, cleanup, + small feature”
  1. Eric WongMar 25, 2006
  2. 1/4 send-email: Change from Mail::Sendmail to Net::SMTPEric Wong, Mar 25, 2006
  3. Ryan AndersonMar 25, 2006
  4. Eric WongMar 26, 2006
  5. Junio C HamanoMar 26, 2006
  6. send-email: Change from Mail::Sendmail to Net::SMTPEric Wong, Mar 26, 2006
  7. Martin LanghoffApr 26, 2006
  8. Junio C HamanoApr 26, 2006
  9. Martin LanghoffApr 26, 2006
  10. Eric WongApr 28, 2006
  11. Martin LanghoffApr 28, 2006
  12. 4/4 send-email: add support for mutt aliases filesEric Wong, Mar 25, 2006
  13. Junio C HamanoMar 25, 2006
  14. Ryan AndersonMar 25, 2006
  15. send-email: address expansion for common mailersEric Wong, Mar 26, 2006
  16. Junio C HamanoMar 26, 2006
  17. Eric WongMar 26, 2006
  18. send-email: address expansion for common mailersEric Wong, May 15, 2006
  19. Ryan AndersonMay 15, 2006
  20. 3/4 send-email: lazy-load Email::Valid and make it optionalEric Wong, Mar 25, 2006
  21. Randal L. SchwartzMar 25, 2006
  22. Junio C HamanoMar 25, 2006
  23. send-email: lazy-load Email::Valid and make it optionalEric Wong, Mar 26, 2006
  24. 2/4 send-email: use built-in time() instead of /bin/date '+%s'Eric Wong, Mar 25, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.