]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - scripts/get_maintainer.pl
get_maintainer.pl: add .get_maintainer.ignore file capability
[karo-tx-linux.git] / scripts / get_maintainer.pl
index d7016279ec2b1b97ebf2bffd98c32e3836f86671..fc169fd2a3cc30816260d73e40093aaffbee4a68 100755 (executable)
@@ -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 ||