From 68dc8769e3994b7dc8b53491c3f9cbd1172260e0 Mon Sep 17 00:00:00 2001 From: Daniel Schwierzeck Date: Fri, 1 Aug 2014 02:24:11 +0200 Subject: [PATCH] get_maintainer.pl: add support for scanning multiple MAINTAINERS files Signed-off-by: Daniel Schwierzeck --- scripts/get_maintainer.pl | 68 +++++++++++++++++++++++++-------------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl index e62c468154..7717d689bf 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); # -- 2.39.5