Skip to content

Commit

Permalink
checkpatch: colorize output to terminal
Browse files Browse the repository at this point in the history
Add optional colors to make seeing message types a bit easier.

Add --color command line switch, default:on

Error is RED, warning is YELLOW, check is GREEN.  The message type, if
shown, is BLUE.

Signed-off-by: Joe Perches <joe@perches.com>
Tested-by: Petr Mladek <pmladek@suse.cz>
Cc: Andy Whitcroft <apw@canonical.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Joe Perches authored and Linus Torvalds committed Jun 26, 2015
1 parent d8469f1 commit 5723029
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions scripts/checkpatch.pl
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use POSIX;
use File::Basename;
use Cwd 'abs_path';
use Term::ANSIColor qw(:constants);

my $P = $0;
my $D = dirname(abs_path($P));
Expand Down Expand Up @@ -49,6 +50,7 @@
my $spelling_file = "$D/spelling.txt";
my $codespell = 0;
my $codespellfile = "/usr/local/share/codespell/dictionary.txt";
my $color = 1;

sub help {
my ($exitcode) = @_;
Expand Down Expand Up @@ -93,6 +95,7 @@ sub help {
--codespell Use the codespell dictionary for spelling/typos
(default:/usr/local/share/codespell/dictionary.txt)
--codespellfile Use this codespell dictionary
--color Use colors when output is STDOUT (default: on)
-h, --help, --version display this help and exit
When FILE is - read standard input.
Expand Down Expand Up @@ -153,6 +156,7 @@ sub help {
'test-only=s' => \$tst_only,
'codespell!' => \$codespell,
'codespellfile=s' => \$codespellfile,
'color!' => \$color,
'h|help' => \$help,
'version' => \$help
) or help(1);
Expand Down Expand Up @@ -1672,15 +1676,26 @@ sub report {
(defined $tst_only && $msg !~ /\Q$tst_only\E/)) {
return 0;
}
my $line;
my $output = '';
if (-t STDOUT && $color) {
if ($level eq 'ERROR') {
$output .= RED;
} elsif ($level eq 'WARNING') {
$output .= YELLOW;
} else {
$output .= GREEN;
}
}
$output .= $prefix . $level . ':';
if ($show_types) {
$line = "$prefix$level:$type: $msg\n";
} else {
$line = "$prefix$level: $msg\n";
$output .= BLUE if (-t STDOUT && $color);
$output .= "$type:";
}
$line = (split('\n', $line))[0] . "\n" if ($terse);
$output .= RESET if (-t STDOUT && $color);
$output .= ' ' . $msg . "\n";
$output = (split('\n', $output))[0] . "\n" if ($terse);

push(our @report, $line);
push(our @report, $output);

return 1;
}
Expand Down

0 comments on commit 5723029

Please sign in to comment.