checkpatch: make -f alias --file, add --help, more verbose help message

Impact:
  - More verbose help/usage message.
  - Make the option -f an alias for --file.
  - On -h, --help, and --version display help message and exit(0).
  - With no FILE(s) given, exit(1) with "no input files".
  - On invalid options display help/usage and exit(1).

Based on a patch by Pavel Machek.

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Hannes Eder 2009-09-21 17:04:37 -07:00 committed by Linus Torvalds
parent 30dad6ebec
commit 77f5b10a82

View File

@ -28,6 +28,41 @@ my $mailback = 0;
my $summary_file = 0; my $summary_file = 0;
my $root; my $root;
my %debug; my %debug;
my $help = 0;
sub help {
my ($exitcode) = @_;
print << "EOM";
Usage: $P [OPTION]... [FILE]...
Version: $V
Options:
-q, --quiet quiet
--no-tree run without a kernel tree
--no-signoff do not check for 'Signed-off-by' line
--patch treat FILE as patchfile (default)
--emacs emacs compile window format
--terse one line per report
-f, --file treat FILE as regular source file
--subjective, --strict enable more subjective tests
--root=PATH PATH to the kernel tree root
--no-summary suppress the per-file summary
--mailback only produce a report in case of warnings/errors
--summary-file include the filename in summary
--debug KEY=[0|1] turn on/off debugging of KEY, where KEY is one of
'values', 'possible', 'type', and 'attr' (default
is all off)
--test-only=WORD report only warnings/errors containing WORD
literally
-h, --help, --version display this help and exit
When FILE is - read standard input.
EOM
exit($exitcode);
}
GetOptions( GetOptions(
'q|quiet+' => \$quiet, 'q|quiet+' => \$quiet,
'tree!' => \$tree, 'tree!' => \$tree,
@ -35,7 +70,7 @@ GetOptions(
'patch!' => \$chk_patch, 'patch!' => \$chk_patch,
'emacs!' => \$emacs, 'emacs!' => \$emacs,
'terse!' => \$terse, 'terse!' => \$terse,
'file!' => \$file, 'f|file!' => \$file,
'subjective!' => \$check, 'subjective!' => \$check,
'strict!' => \$check, 'strict!' => \$check,
'root=s' => \$root, 'root=s' => \$root,
@ -45,22 +80,16 @@ GetOptions(
'debug=s' => \%debug, 'debug=s' => \%debug,
'test-only=s' => \$tst_only, 'test-only=s' => \$tst_only,
) or exit; 'h|help' => \$help,
'version' => \$help
) or help(1);
help(0) if ($help);
my $exit = 0; my $exit = 0;
if ($#ARGV < 0) { if ($#ARGV < 0) {
print "usage: $P [options] patchfile\n"; print "$P: no input files\n";
print "version: $V\n";
print "options: -q => quiet\n";
print " --no-tree => run without a kernel tree\n";
print " --terse => one line per report\n";
print " --emacs => emacs compile window format\n";
print " --file => check a source file\n";
print " --strict => enable more subjective tests\n";
print " --root => path to the kernel tree root\n";
print " --no-summary => suppress the per-file summary\n";
print " --summary-file => include the filename in summary\n";
exit(1); exit(1);
} }