get_maintainer.pl: add -mpath=<path or file> for MAINTAINERS file location

Add the ability to have an override for the location of the MAINTAINERS
file.

Miscellanea:

o Properly indent a few lines with leading spaces

Link: http://lkml.kernel.org/r/a86e69195076ed3c4c526fddc76b86c28e0a1e37.camel@perches.com
Signed-off-by: Joe Perches <joe@perches.com>
Suggested-by: Don Zickus <dzickus@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Joe Perches 2018-08-21 21:56:52 -07:00 committed by Linus Torvalds
parent 31bb82c9ca
commit 5f0baf95b1
1 changed files with 28 additions and 16 deletions

View File

@ -62,7 +62,7 @@ my $self_test = undef;
my $version = 0; my $version = 0;
my $help = 0; my $help = 0;
my $find_maintainer_files = 0; my $find_maintainer_files = 0;
my $maintainer_path;
my $vcs_used = 0; my $vcs_used = 0;
my $exit = 0; my $exit = 0;
@ -265,6 +265,7 @@ if (!GetOptions(
'fe|file-emails!' => \$file_emails, 'fe|file-emails!' => \$file_emails,
'f|file' => \$from_filename, 'f|file' => \$from_filename,
'find-maintainer-files' => \$find_maintainer_files, 'find-maintainer-files' => \$find_maintainer_files,
'mpath|maintainer-path=s' => \$maintainer_path,
'self-test:s' => \$self_test, 'self-test:s' => \$self_test,
'v|version' => \$version, 'v|version' => \$version,
'h|help|usage' => \$help, 'h|help|usage' => \$help,
@ -386,26 +387,37 @@ sub find_ignore_git {
read_all_maintainer_files(); read_all_maintainer_files();
sub read_all_maintainer_files { sub read_all_maintainer_files {
if (-d "${lk_path}MAINTAINERS") { my $path = "${lk_path}MAINTAINERS";
opendir(DIR, "${lk_path}MAINTAINERS") or die $!; if (defined $maintainer_path) {
my @files = readdir(DIR); $path = $maintainer_path;
closedir(DIR); # Perl Cookbook tilde expansion if necessary
foreach my $file (@files) { $path =~ s@^~([^/]*)@ $1 ? (getpwnam($1))[7] : ( $ENV{HOME} || $ENV{LOGDIR} || (getpwuid($<))[7])@ex;
push(@mfiles, "${lk_path}MAINTAINERS/$file") if ($file !~ /^\./);
}
} }
if ($find_maintainer_files) { if (-d $path) {
find( { wanted => \&find_is_maintainer_file, $path .= '/' if ($path !~ m@/$@);
preprocess => \&find_ignore_git, if ($path eq "${lk_path}MAINTAINERS/") {
no_chdir => 1, opendir(DIR, "$path") or die $!;
}, "${lk_path}"); my @files = readdir(DIR);
closedir(DIR);
foreach my $file (@files) {
push(@mfiles, "$path$file") if ($file !~ /^\./);
}
}
if ($find_maintainer_files) {
find( { wanted => \&find_is_maintainer_file,
preprocess => \&find_ignore_git,
no_chdir => 1,
}, "$path");
}
} elsif (-f "$path") {
push(@mfiles, "$path");
} else { } else {
push(@mfiles, "${lk_path}MAINTAINERS") if -f "${lk_path}MAINTAINERS"; die "$P: MAINTAINER file not found '$path'\n";
} }
die "$P: No MAINTAINER files found in '$path'\n" if (scalar(@mfiles) == 0);
foreach my $file (@mfiles) { foreach my $file (@mfiles) {
read_maintainer_file("$file"); read_maintainer_file("$file");
} }
} }