Skip to content

Commit

Permalink
scripts/get_maintainer.pl: add --pattern-depth
Browse files Browse the repository at this point in the history
--pattern-depth is used to control how many levels of directory traversal
should be performed to find maintainers.  default is 0 (all directory levels).

For instance:

MAINTAINERS currently has multiple M: and F: entries that match
net/netfilter/ipvs/ip_vs_app.c

IPVS
M:	Wensong Zhang <[email protected]>
M:	Simon Horman <[email protected]>
M:	Julian Anastasov <[email protected]>
[...]
F:	net/netfilter/ipvs/

NETFILTER/IPTABLES/IPCHAINS
[...]
M:	Patrick McHardy <[email protected]>
[...]
F:	net/netfilter/

NETWORKING [GENERAL]
M:	"David S. Miller" <[email protected]>
[...]
F:	net/

THE REST
M:	Linus Torvalds <[email protected]>
[...]
F:	*/

Using this command will return all of those maintainers:
(except Linus unless --git-chief-maintainers is specified)

$ ./scripts/get_maintainer.pl --nogit -nol \
	-f net/netfilter/ipvs/ip_vs_app.c
Julian Anastasov <[email protected]>
Simon Horman <[email protected]>
Wensong Zhang <[email protected]>
Patrick McHardy <[email protected]>
David S. Miller <[email protected]>

Adding --pattern-depth=1 will match at the deepest level
$ ./scripts/get_maintainer.pl --nogit -nol --pattern-depth=1 \
	-f net/netfilter/ipvs/ip_vs_app.c
Julian Anastasov <[email protected]>
Simon Horman <[email protected]>
Wensong Zhang <[email protected]>

Adding --pattern-depth=2 will match at the deepest level and 1 higher
$ ./scripts/get_maintainer.pl --nogit -nol --pattern-depth=2 \
	-f net/netfilter/ipvs/ip_vs_app.c
Julian Anastasov <[email protected]>
Simon Horman <[email protected]>
Wensong Zhang <[email protected]>
Patrick McHardy <[email protected]>

and so on.

Signed-off-by: Joe Perches <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
JoePerches authored and torvalds committed Sep 22, 2009
1 parent 1d606b4 commit 3fb5565
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions scripts/get_maintainer.pl
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
use strict;

my $P = $0;
my $V = '0.18beta2';
my $V = '0.19';

use Getopt::Long qw(:config no_auto_abbrev);

Expand All @@ -37,6 +37,7 @@
my $subsystem = 0;
my $status = 0;
my $from_filename = 0;
my $pattern_depth = 0;
my $version = 0;
my $help = 0;

Expand Down Expand Up @@ -80,6 +81,7 @@
'status!' => \$status,
'scm!' => \$scm,
'web!' => \$web,
'pattern-depth=i' => \$pattern_depth,
'f|file' => \$from_filename,
'v|version' => \$version,
'h|help' => \$help,
Expand Down Expand Up @@ -226,9 +228,13 @@
my $value = $2;
if ($type eq 'F') {
if (file_match_pattern($file, $value)) {
my $pattern_depth = ($value =~ tr@/@@);
$pattern_depth++ if (!(substr($value,-1,1) eq "/"));
$hash{$tvi} = $pattern_depth;
my $value_pd = ($value =~ tr@/@@);
my $file_pd = ($file =~ tr@/@@);
$value_pd++ if (substr($value,-1,1) ne "/");
if ($pattern_depth == 0 ||
(($file_pd - $value_pd) < $pattern_depth)) {
$hash{$tvi} = $value_pd;
}
}
}
}
Expand Down Expand Up @@ -345,13 +351,14 @@ sub usage {
--separator [, ] => separator for multiple entries on 1 line
--multiline => print 1 entry per line
Default options:
[--email --git --m --n --l --multiline]
Other options:
--pattern-depth => Number of pattern directory traversals (default: 0 (all))
--version => show version
--help => show this help information
Default options:
[--email --git --m --n --l --multiline --pattern-depth=0]
Notes:
Using "-f directory" may give unexpected results:
Used with "--git", git signators for _all_ files in and below
Expand Down

0 comments on commit 3fb5565

Please sign in to comment.