aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDaniel Schwierzeck2014-08-01 02:24:11 +0200
committerTom Rini2014-08-09 11:17:05 -0400
commit68dc8769e3994b7dc8b53491c3f9cbd1172260e0 (patch)
tree9b0dce7c626e2f9a1f2276a85cfdc77e4f9e6444 /scripts
parentee360cd26acd3f83e517525b511bebf74d7669e5 (diff)
get_maintainer.pl: add support for scanning multiple MAINTAINERS files
Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/get_maintainer.pl68
1 files changed, 44 insertions, 24 deletions
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index e62c4681546..7717d689bfc 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -16,6 +16,7 @@ my $P = $0;
my $V = '0.26';
use Getopt::Long qw(:config no_auto_abbrev);
+use File::Find;
my $lk_path = "./";
my $email = 1;
@@ -273,34 +274,53 @@ if (!top_of_kernel_tree($lk_path)) {
my @typevalue = ();
my %keyword_hash;
-open (my $maint, '<', "${lk_path}MAINTAINERS")
- or die "$P: Can't open MAINTAINERS: $!\n";
-while (<$maint>) {
- my $line = $_;
-
- if ($line =~ m/^(\C):\s*(.*)/) {
- my $type = $1;
- my $value = $2;
-
- ##Filename pattern matching
- if ($type eq "F" || $type eq "X") {
- $value =~ s@\.@\\\.@g; ##Convert . to \.
- $value =~ s/\*/\.\*/g; ##Convert * to .*
- $value =~ s/\?/\./g; ##Convert ? to .
- ##if pattern is a directory and it lacks a trailing slash, add one
- if ((-d $value)) {
- $value =~ s@([^/])$@$1/@;
+my @maint_files = ();
+push(@maint_files, "${lk_path}MAINTAINERS");
+
+sub maint_wanted {
+ return unless $_ =~ /^MAINTAINERS/;
+ push(@maint_files, "$File::Find::name");
+}
+
+File::Find::find(\&maint_wanted, "${lk_path}board");
+
+foreach my $maint_file (@maint_files) {
+ my $maint;
+ open ($maint, '<', "$maint_file")
+ or die "$P: Can't open $maint_file: $!\n";
+ read_maintainers($maint);
+ close($maint);
+}
+
+sub read_maintainers {
+ my ($maint) = @_;
+
+ while (<$maint>) {
+ my $line = $_;
+
+ if ($line =~ m/^(\C):\s*(.*)/) {
+ my $type = $1;
+ my $value = $2;
+
+ ##Filename pattern matching
+ if ($type eq "F" || $type eq "X") {
+ $value =~ s@\.@\\\.@g; ##Convert . to \.
+ $value =~ s/\*/\.\*/g; ##Convert * to .*
+ $value =~ s/\?/\./g; ##Convert ? to .
+ ##if pattern is a directory and it lacks a trailing slash, add one
+ if ((-d $value)) {
+ $value =~ s@([^/])$@$1/@;
+ }
+ } elsif ($type eq "K") {
+ $keyword_hash{@typevalue} = $value;
}
- } elsif ($type eq "K") {
- $keyword_hash{@typevalue} = $value;
+ push(@typevalue, "$type:$value");
+ } elsif (!/^(\s)*$/) {
+ $line =~ s/\n$//g;
+ push(@typevalue, $line);
}
- push(@typevalue, "$type:$value");
- } elsif (!/^(\s)*$/) {
- $line =~ s/\n$//g;
- push(@typevalue, $line);
}
}
-close($maint);
#