aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorJoe Perches <joe@perches.com>2010-03-05 16:43:03 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-06 14:26:33 -0500
commit4b76c9da611593eed6a13527c5ebd00c173624ad (patch)
tree0d7d3a57949e087eb9fb1cceab5982ab6e9da6c8 /scripts
parent03372dbbe618bfcd02f9c8cdbfe78e97e3aad43b (diff)
scripts/get_maintainer.pl: add --sections, print entire matched subsystem
Print the complete contents of the matched subsystems in pattern match depth order. Sample output: $ ./scripts/get_maintainer.pl --sections -f drivers/net/usb/smsc95xx.c USB SMSC95XX ETHERNET DRIVER M:Steve Glendinning <steve.glendinning@smsc.com> L:netdev@vger.kernel.org S:Supported F:drivers/net/usb/smsc95xx.* USB SUBSYSTEM M:Greg Kroah-Hartman <gregkh@suse.de> L:linux-usb@vger.kernel.org W:http://www.linux-usb.org T:quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ S:Supported F:Documentation/usb/ F:drivers/net/usb/ F:drivers/usb/ F:include/linux/usb.h F:include/linux/usb/ NETWORKING DRIVERS L:netdev@vger.kernel.org W:http://www.linuxfoundation.org/en/Net T:git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.git S:Odd Fixes F:drivers/net/ F:include/linux/if_* F:include/linux/*device.h THE REST M:Linus Torvalds <torvalds@linux-foundation.org> L:linux-kernel@vger.kernel.org Q:http://patchwork.kernel.org/project/LKML/list/ T:git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git S:Buried alive in reporters F:* F:*/ Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/get_maintainer.pl36
1 files changed, 32 insertions, 4 deletions
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index bff2390652c2..e54f72f6c341 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -41,6 +41,7 @@ my $web = 0;
41my $subsystem = 0; 41my $subsystem = 0;
42my $status = 0; 42my $status = 0;
43my $keywords = 1; 43my $keywords = 1;
44my $sections = 0;
44my $file_emails = 0; 45my $file_emails = 0;
45my $from_filename = 0; 46my $from_filename = 0;
46my $pattern_depth = 0; 47my $pattern_depth = 0;
@@ -121,6 +122,7 @@ if (!GetOptions(
121 'web!' => \$web, 122 'web!' => \$web,
122 'pattern-depth=i' => \$pattern_depth, 123 'pattern-depth=i' => \$pattern_depth,
123 'k|keywords!' => \$keywords, 124 'k|keywords!' => \$keywords,
125 'sections!' => \$sections,
124 'fe|file-emails!' => \$file_emails, 126 'fe|file-emails!' => \$file_emails,
125 'f|file' => \$from_filename, 127 'f|file' => \$from_filename,
126 'v|version' => \$version, 128 'v|version' => \$version,
@@ -152,10 +154,20 @@ if ($output_rolestats) {
152 $output_roles = 1; 154 $output_roles = 1;
153} 155}
154 156
155my $selections = $email + $scm + $status + $subsystem + $web; 157if ($sections) {
156if ($selections == 0) { 158 $email = 0;
157 usage(); 159 $email_list = 0;
158 die "$P: Missing required option: email, scm, status, subsystem or web\n"; 160 $scm = 0;
161 $status = 0;
162 $subsystem = 0;
163 $web = 0;
164 $keywords = 0;
165} else {
166 my $selections = $email + $scm + $status + $subsystem + $web;
167 if ($selections == 0) {
168 usage();
169 die "$P: Missing required option: email, scm, status, subsystem or web\n";
170 }
159} 171}
160 172
161if ($email && 173if ($email &&
@@ -357,6 +369,21 @@ foreach my $file (@files) {
357 369
358 foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) { 370 foreach my $line (sort {$hash{$b} <=> $hash{$a}} keys %hash) {
359 add_categories($line); 371 add_categories($line);
372 if ($sections) {
373 my $i;
374 my $start = find_starting_index($line);
375 my $end = find_ending_index($line);
376 for ($i = $start; $i < $end; $i++) {
377 my $line = $typevalue[$i];
378 if ($line =~ /^[FX]:/) { ##Restore file patterns
379 $line =~ s/([^\\])\.([^\*])/$1\?$2/g;
380 $line =~ s/([^\\])\.$/$1\?/g; ##Convert . back to ?
381 $line =~ s/\\\./\./g; ##Convert \. to .
382 $line =~ s/\.\*/\*/g; ##Convert .* to *
383 }
384 print("$line\n");
385 }
386 }
360 } 387 }
361 388
362 if ($email && $email_git) { 389 if ($email && $email_git) {
@@ -486,6 +513,7 @@ Output type options:
486Other options: 513Other options:
487 --pattern-depth => Number of pattern directory traversals (default: 0 (all)) 514 --pattern-depth => Number of pattern directory traversals (default: 0 (all))
488 --keywords => scan patch for keywords (default: 1 (on)) 515 --keywords => scan patch for keywords (default: 1 (on))
516 --sections => print the entire subsystem sections with pattern matches
489 --version => show version 517 --version => show version
490 --help => show this help information 518 --help => show this help information
491 519