提交 3beb42ec 编写于 作者: J Joe Perches 提交者: Linus Torvalds

checkpatch: add --list-types to show message types to show or ignore

The message types are not currently knowable without reading the code.
Add a mechanism to see what they are.
Signed-off-by: NJoe Perches <joe@perches.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 ef212196
...@@ -33,6 +33,7 @@ my $summary = 1; ...@@ -33,6 +33,7 @@ my $summary = 1;
my $mailback = 0; my $mailback = 0;
my $summary_file = 0; my $summary_file = 0;
my $show_types = 0; my $show_types = 0;
my $list_types = 0;
my $fix = 0; my $fix = 0;
my $fix_inplace = 0; my $fix_inplace = 0;
my $root; my $root;
...@@ -70,11 +71,12 @@ Options: ...@@ -70,11 +71,12 @@ Options:
--showfile emit diffed file position, not input file position --showfile emit diffed file position, not input file position
-f, --file treat FILE as regular source file -f, --file treat FILE as regular source file
--subjective, --strict enable more subjective tests --subjective, --strict enable more subjective tests
--list-types list the possible message types
--types TYPE(,TYPE2...) show only these comma separated message types --types TYPE(,TYPE2...) show only these comma separated message types
--ignore TYPE(,TYPE2...) ignore various comma separated message types --ignore TYPE(,TYPE2...) ignore various comma separated message types
--show-types show the specific message type in the output
--max-line-length=n set the maximum line length, if exceeded, warn --max-line-length=n set the maximum line length, if exceeded, warn
--min-conf-desc-length=n set the min description length, if shorter, warn --min-conf-desc-length=n set the min description length, if shorter, warn
--show-types show the message "types" in the output
--root=PATH PATH to the kernel tree root --root=PATH PATH to the kernel tree root
--no-summary suppress the per-file summary --no-summary suppress the per-file summary
--mailback only produce a report in case of warnings/errors --mailback only produce a report in case of warnings/errors
...@@ -106,6 +108,37 @@ EOM ...@@ -106,6 +108,37 @@ EOM
exit($exitcode); exit($exitcode);
} }
sub uniq {
my %seen;
return grep { !$seen{$_}++ } @_;
}
sub list_types {
my ($exitcode) = @_;
my $count = 0;
local $/ = undef;
open(my $script, '<', abs_path($P)) or
die "$P: Can't read '$P' $!\n";
my $text = <$script>;
close($script);
my @types = ();
for ($text =~ /\b(?:(?:CHK|WARN|ERROR)\s*\(\s*"([^"]+)")/g) {
push (@types, $_);
}
@types = sort(uniq(@types));
print("#\tMessage type\n\n");
foreach my $type (@types) {
print(++$count . "\t" . $type . "\n");
}
exit($exitcode);
}
my $conf = which_conf($configuration_file); my $conf = which_conf($configuration_file);
if (-f $conf) { if (-f $conf) {
my @conf_args; my @conf_args;
...@@ -146,6 +179,7 @@ GetOptions( ...@@ -146,6 +179,7 @@ GetOptions(
'ignore=s' => \@ignore, 'ignore=s' => \@ignore,
'types=s' => \@use, 'types=s' => \@use,
'show-types!' => \$show_types, 'show-types!' => \$show_types,
'list-types!' => \$list_types,
'max-line-length=i' => \$max_line_length, 'max-line-length=i' => \$max_line_length,
'min-conf-desc-length=i' => \$min_conf_desc_length, 'min-conf-desc-length=i' => \$min_conf_desc_length,
'root=s' => \$root, 'root=s' => \$root,
...@@ -166,6 +200,8 @@ GetOptions( ...@@ -166,6 +200,8 @@ GetOptions(
help(0) if ($help); help(0) if ($help);
list_types(0) if ($list_types);
$fix = 1 if ($fix_inplace); $fix = 1 if ($fix_inplace);
$check_orig = $check; $check_orig = $check;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册