From: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
To: qemu-devel@nongnu.org
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Philippe Mathieu-Daudé" <f4bug@amsat.org>,
"Richard Henderson" <rth@twiddle.net>
Subject: [PATCH] scripts/get_maintainer: Use .ignoredmailmap to ignore invalid emails
Date: Mon, 29 Jun 2020 19:27:16 +0200 [thread overview]
Message-ID: <20200629172716.20781-1-f4bug@amsat.org> (raw)
Sometime emails get rejected and 'bounce'. It might take time
between we report that, a patch is posted, reviewed, merged...
To reduce time spent looking at bouncing emails in one mailbox,
add the feature to simply ignore broken email addresses. The
format is similar to the '.mailmap' file. Add an email address
in your local '.ignoredmailmap. and get_maintainer.pl won't
list it anymore.
This is particularly useful when git-send-email is used with
the --cc-cmd argument, like suggested in QEMU wiki:
https://wiki.qemu.org/Contribute/SubmitAPatch#CC_the_relevant_maintainer
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
scripts/get_maintainer.pl | 50 +++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 271f5ff42a..7f7a4ff3ef 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -38,6 +38,7 @@
my $interactive = 0;
my $email_remove_duplicates = 1;
my $email_use_mailmap = 1;
+my $email_use_ignoredmailmap = 1;
my $output_multiline = 1;
my $output_separator = ", ";
my $output_roles = 0;
@@ -365,6 +366,51 @@ sub read_mailmap {
close($mailmap_file);
}
+my $ignoredmailmap;
+
+read_ignoredmailmap();
+
+sub read_ignoredmailmap {
+ $ignoredmailmap = {
+ names => {},
+ addresses => {}
+ };
+
+ return if (!$email_use_ignoredmailmap || !(-f "${lk_path}.ignoredmailmap"));
+
+ open(my $ignoredmailmap_file, '<', "${lk_path}.ignoredmailmap")
+ or warn "$P: Can't open .ignoredmailmap: $!\n";
+
+ while (<$ignoredmailmap_file>) {
+ s/#.*$//; #strip comments
+ s/^\s+|\s+$//g; #trim
+
+ next if (/^\s*$/); #skip empty lines
+ #entries have one of the following formats:
+ # name1 <mail1>
+ # <mail1>
+
+ if (/^([^<]+)<([^>]+)>$/) {
+ my $real_name = $1;
+ my $address = $2;
+
+ $real_name =~ s/\s+$//;
+ ($real_name, $address) = parse_email("$real_name <$address>");
+ $ignoredmailmap->{$address} = 1;
+ } elsif (/^(.+)<([^>]+)>\s*<([^>]+)>$/) {
+ my $real_name = $1;
+ my $real_address = $2;
+ my $wrong_address = $3;
+
+ $real_name =~ s/\s+$//;
+ ($real_name, $real_address) =
+ parse_email("$real_name <$real_address>");
+ $ignoredmailmap->{$real_address} = 1;
+ }
+ }
+ close($ignoredmailmap_file);
+}
+
## use the filenames on the command line or find the filenames in the patchfiles
my @files = ();
@@ -1074,6 +1120,10 @@ sub push_email_address {
if ($address eq "") {
return 0;
}
+ if (exists $ignoredmailmap->{$address}) {
+ #warn("Ignoring address: '" . $address . "'\n");
+ return 0;
+ }
if (!$email_remove_duplicates) {
push(@email_to, [format_email($name, $address, $email_usename), $role]);
--
2.21.3
next reply other threads:[~2020-06-29 17:28 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-29 17:27 Philippe Mathieu-Daudé [this message]
2020-07-01 14:25 ` [PATCH] scripts/get_maintainer: Use .ignoredmailmap to ignore invalid emails Paolo Bonzini
2020-07-01 15:07 ` Philippe Mathieu-Daudé
2020-07-01 15:12 ` Paolo Bonzini
2020-07-01 16:54 ` Philippe Mathieu-Daudé
2020-07-01 19:51 ` Alexander Graf
2020-07-02 5:54 ` Pavel Dovgalyuk
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200629172716.20781-1-f4bug@amsat.org \
--to=f4bug@amsat.org \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).