mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
scripts/get_maintainer.pl: add --pattern-depth
--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 <wensong@linux-vs.org> M: Simon Horman <horms@verge.net.au> M: Julian Anastasov <ja@ssi.bg> [...] F: net/netfilter/ipvs/ NETFILTER/IPTABLES/IPCHAINS [...] M: Patrick McHardy <kaber@trash.net> [...] F: net/netfilter/ NETWORKING [GENERAL] M: "David S. Miller" <davem@davemloft.net> [...] F: net/ THE REST M: Linus Torvalds <torvalds@linux-foundation.org> [...] 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 <ja@ssi.bg> Simon Horman <horms@verge.net.au> Wensong Zhang <wensong@linux-vs.org> Patrick McHardy <kaber@trash.net> David S. Miller <davem@davemloft.net> 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 <ja@ssi.bg> Simon Horman <horms@verge.net.au> Wensong Zhang <wensong@linux-vs.org> 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 <ja@ssi.bg> Simon Horman <horms@verge.net.au> Wensong Zhang <wensong@linux-vs.org> Patrick McHardy <kaber@trash.net> and so on. 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>
This commit is contained in:
parent
1d606b4e0b
commit
3fb55652b9
1 changed files with 14 additions and 7 deletions
|
@ -13,7 +13,7 @@
|
||||||
use strict;
|
use strict;
|
||||||
|
|
||||||
my $P = $0;
|
my $P = $0;
|
||||||
my $V = '0.18beta2';
|
my $V = '0.19';
|
||||||
|
|
||||||
use Getopt::Long qw(:config no_auto_abbrev);
|
use Getopt::Long qw(:config no_auto_abbrev);
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@ my $web = 0;
|
||||||
my $subsystem = 0;
|
my $subsystem = 0;
|
||||||
my $status = 0;
|
my $status = 0;
|
||||||
my $from_filename = 0;
|
my $from_filename = 0;
|
||||||
|
my $pattern_depth = 0;
|
||||||
my $version = 0;
|
my $version = 0;
|
||||||
my $help = 0;
|
my $help = 0;
|
||||||
|
|
||||||
|
@ -80,6 +81,7 @@ if (!GetOptions(
|
||||||
'status!' => \$status,
|
'status!' => \$status,
|
||||||
'scm!' => \$scm,
|
'scm!' => \$scm,
|
||||||
'web!' => \$web,
|
'web!' => \$web,
|
||||||
|
'pattern-depth=i' => \$pattern_depth,
|
||||||
'f|file' => \$from_filename,
|
'f|file' => \$from_filename,
|
||||||
'v|version' => \$version,
|
'v|version' => \$version,
|
||||||
'h|help' => \$help,
|
'h|help' => \$help,
|
||||||
|
@ -226,9 +228,13 @@ foreach my $file (@files) {
|
||||||
my $value = $2;
|
my $value = $2;
|
||||||
if ($type eq 'F') {
|
if ($type eq 'F') {
|
||||||
if (file_match_pattern($file, $value)) {
|
if (file_match_pattern($file, $value)) {
|
||||||
my $pattern_depth = ($value =~ tr@/@@);
|
my $value_pd = ($value =~ tr@/@@);
|
||||||
$pattern_depth++ if (!(substr($value,-1,1) eq "/"));
|
my $file_pd = ($file =~ tr@/@@);
|
||||||
$hash{$tvi} = $pattern_depth;
|
$value_pd++ if (substr($value,-1,1) ne "/");
|
||||||
|
if ($pattern_depth == 0 ||
|
||||||
|
(($file_pd - $value_pd) < $pattern_depth)) {
|
||||||
|
$hash{$tvi} = $value_pd;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -345,13 +351,14 @@ Output type options:
|
||||||
--separator [, ] => separator for multiple entries on 1 line
|
--separator [, ] => separator for multiple entries on 1 line
|
||||||
--multiline => print 1 entry per line
|
--multiline => print 1 entry per line
|
||||||
|
|
||||||
Default options:
|
|
||||||
[--email --git --m --n --l --multiline]
|
|
||||||
|
|
||||||
Other options:
|
Other options:
|
||||||
|
--pattern-depth => Number of pattern directory traversals (default: 0 (all))
|
||||||
--version => show version
|
--version => show version
|
||||||
--help => show this help information
|
--help => show this help information
|
||||||
|
|
||||||
|
Default options:
|
||||||
|
[--email --git --m --n --l --multiline --pattern-depth=0]
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
Using "-f directory" may give unexpected results:
|
Using "-f directory" may give unexpected results:
|
||||||
Used with "--git", git signators for _all_ files in and below
|
Used with "--git", git signators for _all_ files in and below
|
||||||
|
|
Loading…
Reference in a new issue