OSes have additional maintainers that should be cc'd on patches or may
want to circulate internal patches.

Parse the .get_maintainer.MAINTAINERS file.  Entries in the file
can begin with a '+' to indicate the email and list entries should be
added to the exiting MAINTAINERS output, or a '-' to indicate that the
entries should override the existing MAINTAINERS file.

Also add a help entry for the .get_maintainers.ignore file.

Signed-off-by: Prarit Bhargava <pra...@redhat.com>
Cc: Joe Perches <j...@perches.com>
Cc: dzic...@redhat.com
Cc: jtopp...@redhat.com
---
 scripts/get_maintainer.pl | 34 ++++++++++++++++++++++++++++++++++
 1 file changed, 34 insertions(+)

diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index c87fa734e3e1..239f4d2ce972 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -384,6 +384,32 @@ sub find_ignore_git {
 read_all_maintainer_files();
 
 sub read_all_maintainer_files {
+       my $conf = which_conf(".get_maintainer.MAINTAINERS");
+       if ( -f $conf) {
+           my @conf_args;
+           my $add = 0;
+           open(my $conffile, '<', "$conf")
+               or warn "$P: Can't find a readable .get_maintainer.MAINTAINERS 
file $!\n";
+           while (<$conffile>) {
+               my $line = $_;
+               if ($line =~ m/^\+/ ) {
+                   $add = 1;
+               }
+               next if ($line =~ m/^\s*#/);
+               $line =~ s/^\+//g;
+               $line =~ s/^\-//g;
+               $line =~ s/\s*\n?$//;
+               push(@mfiles, $line);
+           }
+           close($conffile);
+           if ($add eq 0) {
+               foreach my $file (@mfiles) {
+                    read_maintainer_file("$file");
+               }
+               return;
+           }
+       }
+
     if (-d "${lk_path}MAINTAINERS") {
         opendir(DIR, "${lk_path}MAINTAINERS") or die $!;
         my @files = readdir(DIR);
@@ -1068,6 +1094,14 @@ Notes:
       Entries in this file can be any command line argument.
       This file is prepended to any additional command line arguments.
       Multiple lines and # comments are allowed.
+  File ".get_maintainer.ignore", if it exists in the linux kernel source root
+      directory, can contain a list of email addresses to ignore.  Multiple
+      lines and # comments are allowed.
+  File ".get_maintainer.MAINTAINERS", if it exists in the linux kernel source
+      root directory, can change the location of the MAINTAINERS file.
+      Entries beginning with a '+' are added to the default list, and
+      entries beginning with a '-' override the existing MAINTAINERS list
+      lookup.  Multiple lines and # comments are allowed.
   Most options have both positive and negative forms.
       The negative forms for --<foo> are --no<foo> and --no-<foo>.
 
-- 
2.14.4

Reply via email to