[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230927-get_maintainer_add_d-v1-3-28c207229e72@google.com>
Date: Wed, 27 Sep 2023 03:19:16 +0000
From: Justin Stitt <justinstitt@...gle.com>
To: Joe Perches <joe@...ches.com>
Cc: linux-kernel@...r.kernel.org, Kees Cook <keescook@...omium.org>,
Nick Desaulniers <ndesaulniers@...gle.com>,
Nathan Chancellor <nathan@...nel.org>,
Jakub Kicinski <kuba@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski@...aro.org>,
geert@...ux-m68k.org, gregkh@...uxfoundation.org,
workflows@...r.kernel.org, mario.limonciello@....com,
Justin Stitt <justinstitt@...gle.com>
Subject: [PATCH 3/3] get_maintainer: add patch-only pattern matching type
Add the "D:" type which behaves the same as "K:" but will only match
content present in a patch file.
To illustrate:
Imagine this entry in MAINTAINERS:
NEW REPUBLIC
M: Han Solo <hansolo@...elalliance.co>
W: https://www.jointheresistance.org
D: \bstrncpy\b
Our maintainer, Han, will only be added to the recipients if a patch
file is passed to get_maintainer (like what b4 does):
$ ./scripts/get_maintainer.pl 0004-some-change.patch
If the above patch has a `strncpy` present in the subject, commit log or
diff then Han will be to/cc'd.
However, in the event of a file from the tree given like:
$ ./scripts/get_maintainer.pl ./lib/string.c
Han will not be noisily to/cc'd (like a K: type would in this
circumstance)
Note that folks really shouldn't be using get_maintainer on tree files
anyways [1].
[1]: https://lore.kernel.org/all/20230726151515.1650519-1-kuba@kernel.org/
---
scripts/get_maintainer.pl | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index e679eac96793..f290bf0948f1 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -309,6 +309,7 @@ if ( $tree && !top_of_kernel_tree($lk_path) ) {
my @typevalue = ();
my %keyword_hash;
+my %patch_keyword_hash;
my @mfiles = ();
my @self_test_info = ();
@@ -339,6 +340,9 @@ sub read_maintainer_file {
elsif ( $type eq "K" ) {
$keyword_hash{@...evalue} = $value;
}
+ elsif ( $type eq "D" ) {
+ $patch_keyword_hash{@...evalue} = $value;
+ }
push( @typevalue, "$type:$value" );
}
elsif ( !( /^\s*$/ || /^\s*\#/ ) ) {
@@ -591,6 +595,11 @@ foreach my $file (@ARGV) {
push( @keyword_tvi, $line );
}
}
+ foreach my $line ( keys %patch_keyword_hash ) {
+ if ($patch_line =~ m/${patch_prefix}$patch_keyword_hash{$line}/x ) {
+ push( @keyword_tvi, $line );
+ }
+ }
}
}
close($patch);
--
2.42.0.582.g8ccd20d70d-goog
Powered by blists - more mailing lists