get_maintainer: add --bug option to print bug reporting info

For example Documentation/adming-guide/bug-hunting.rst suggest using
get_maintainer.pl to get a list of maintainers and mailing lists to
report bugs to, while a number of subsystems and drivers explicitly use
the "B:" MAINTAINERS entry to direct bug reports at issue trackers
instead of mailing lists and people.

Add the --bug option to get_maintainer.pl to print the bug reporting
URIs, if any.

Cc: Joe Perches <joe@perches.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Acked-by: Joe Perches <joe@perches.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/20240815113450.3397499-1-jani.nikula@intel.com
This commit is contained in:
Jani Nikula 2024-08-15 14:34:49 +03:00 committed by Jonathan Corbet
parent 748c3404c8
commit 033964f13e

View File

@ -54,6 +54,7 @@ my $output_section_maxlen = 50;
my $scm = 0; my $scm = 0;
my $tree = 1; my $tree = 1;
my $web = 0; my $web = 0;
my $bug = 0;
my $subsystem = 0; my $subsystem = 0;
my $status = 0; my $status = 0;
my $letters = ""; my $letters = "";
@ -271,6 +272,7 @@ if (!GetOptions(
'scm!' => \$scm, 'scm!' => \$scm,
'tree!' => \$tree, 'tree!' => \$tree,
'web!' => \$web, 'web!' => \$web,
'bug!' => \$bug,
'letters=s' => \$letters, 'letters=s' => \$letters,
'pattern-depth=i' => \$pattern_depth, 'pattern-depth=i' => \$pattern_depth,
'k|keywords!' => \$keywords, 'k|keywords!' => \$keywords,
@ -320,13 +322,14 @@ if ($sections || $letters ne "") {
$status = 0; $status = 0;
$subsystem = 0; $subsystem = 0;
$web = 0; $web = 0;
$bug = 0;
$keywords = 0; $keywords = 0;
$keywords_in_file = 0; $keywords_in_file = 0;
$interactive = 0; $interactive = 0;
} else { } else {
my $selections = $email + $scm + $status + $subsystem + $web; my $selections = $email + $scm + $status + $subsystem + $web + $bug;
if ($selections == 0) { if ($selections == 0) {
die "$P: Missing required option: email, scm, status, subsystem or web\n"; die "$P: Missing required option: email, scm, status, subsystem, web or bug\n";
} }
} }
@ -631,6 +634,7 @@ my %hash_list_to;
my @list_to = (); my @list_to = ();
my @scm = (); my @scm = ();
my @web = (); my @web = ();
my @bug = ();
my @subsystem = (); my @subsystem = ();
my @status = (); my @status = ();
my %deduplicate_name_hash = (); my %deduplicate_name_hash = ();
@ -662,6 +666,11 @@ if ($web) {
output(@web); output(@web);
} }
if ($bug) {
@bug = uniq(@bug);
output(@bug);
}
exit($exit); exit($exit);
sub self_test { sub self_test {
@ -847,6 +856,7 @@ sub get_maintainers {
@list_to = (); @list_to = ();
@scm = (); @scm = ();
@web = (); @web = ();
@bug = ();
@subsystem = (); @subsystem = ();
@status = (); @status = ();
%deduplicate_name_hash = (); %deduplicate_name_hash = ();
@ -1069,6 +1079,7 @@ MAINTAINER field selection options:
--status => print status if any --status => print status if any
--subsystem => print subsystem name if any --subsystem => print subsystem name if any
--web => print website(s) if any --web => print website(s) if any
--bug => print bug reporting info if any
Output type options: Output type options:
--separator [, ] => separator for multiple entries on 1 line --separator [, ] => separator for multiple entries on 1 line
@ -1382,6 +1393,8 @@ sub add_categories {
push(@scm, $pvalue . $suffix); push(@scm, $pvalue . $suffix);
} elsif ($ptype eq "W") { } elsif ($ptype eq "W") {
push(@web, $pvalue . $suffix); push(@web, $pvalue . $suffix);
} elsif ($ptype eq "B") {
push(@bug, $pvalue . $suffix);
} elsif ($ptype eq "S") { } elsif ($ptype eq "S") {
push(@status, $pvalue . $suffix); push(@status, $pvalue . $suffix);
} }