|
@@ -186,6 +186,27 @@ if (-f $conf) {
|
|
|
unshift(@ARGV, @conf_args) if @conf_args;
|
|
|
}
|
|
|
|
|
|
+my @ignore_emails = ();
|
|
|
+my $ignore_file = which_conf(".get_maintainer.ignore");
|
|
|
+if (-f $ignore_file) {
|
|
|
+ open(my $ignore, '<', "$ignore_file")
|
|
|
+ or warn "$P: Can't find a readable .get_maintainer.ignore file $!\n";
|
|
|
+ while (<$ignore>) {
|
|
|
+ my $line = $_;
|
|
|
+
|
|
|
+ $line =~ s/\s*\n?$//;
|
|
|
+ $line =~ s/^\s*//;
|
|
|
+ $line =~ s/\s+$//;
|
|
|
+ $line =~ s/#.*$//;
|
|
|
+
|
|
|
+ next if ($line =~ m/^\s*$/);
|
|
|
+ if (rfc822_valid($line)) {
|
|
|
+ push(@ignore_emails, $line);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ close($ignore);
|
|
|
+}
|
|
|
+
|
|
|
if (!GetOptions(
|
|
|
'email!' => \$email,
|
|
|
'git!' => \$email_git,
|
|
@@ -513,6 +534,16 @@ if ($web) {
|
|
|
|
|
|
exit($exit);
|
|
|
|
|
|
+sub ignore_email_address {
|
|
|
+ my ($address) = @_;
|
|
|
+
|
|
|
+ foreach my $ignore (@ignore_emails) {
|
|
|
+ return 1 if ($ignore eq $address);
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
sub range_is_maintained {
|
|
|
my ($start, $end) = @_;
|
|
|
|
|
@@ -1868,6 +1899,7 @@ sub vcs_assign {
|
|
|
my $percent = $sign_offs * 100 / $divisor;
|
|
|
|
|
|
$percent = 100 if ($percent > 100);
|
|
|
+ next if (ignore_email_address($line));
|
|
|
$count++;
|
|
|
last if ($sign_offs < $email_git_min_signatures ||
|
|
|
$count > $email_git_max_maintainers ||
|