forked from qt-creator/qt-creator
66 lines
1.4 KiB
Perl
66 lines
1.4 KiB
Perl
![]() |
#!/usr/bin/perl
|
||
|
|
||
|
use strict;
|
||
|
|
||
|
my $date = `date`;
|
||
|
print "# $date";
|
||
|
|
||
|
sub escape {
|
||
|
my $text = shift;
|
||
|
$text =~ s/\\/\\\\/g;
|
||
|
$text =~ s/\n/\\n/g;
|
||
|
$text =~ s/\t/\\t/g;
|
||
|
return $text;
|
||
|
}
|
||
|
sub checkLine {
|
||
|
my $line = shift;
|
||
|
my $file = shift;
|
||
|
my $row = shift;
|
||
|
|
||
|
$file = escape($file);
|
||
|
$row = escape($row);
|
||
|
|
||
|
if ($line =~ /(FIXME|TODO)(.*)$/) {
|
||
|
print "$file\t$row\tWARNING\t$1$2\n";
|
||
|
}
|
||
|
if ($line =~ /(qDebug|QDebug>|QtDebug>|<debug>)/) {
|
||
|
print "$file\t$row\tWARNING\tRemove debug code\n";
|
||
|
}
|
||
|
if ($line =~ /^(<<<<|====|>>>>)/) {
|
||
|
print "$file\n$row\tERROR\tResolve conflict!\n";
|
||
|
}
|
||
|
if ($line =~ /(Q_SIGNALS|Q_SLOTS)/) {
|
||
|
print "$file\t$row\tWARNING\tPrefer signals and slots over Q_SIGNALS and Q_SLOTS\n";
|
||
|
}
|
||
|
if ($line =~ /^#\s*(warning|error) (.*)$/) {
|
||
|
print "$file\t$row\t$1\tClean up preprocessor $1:$2\n";
|
||
|
}
|
||
|
}
|
||
|
|
||
|
my $filename = "";
|
||
|
my $pos = 0;
|
||
|
|
||
|
open(PIPE, "git diff origin/master|");
|
||
|
while (<PIPE>) {
|
||
|
chomp;
|
||
|
my $line = $_;
|
||
|
print "#$line\n";
|
||
|
next if ($line =~ /^-/);
|
||
|
if ($line =~ /^\+\+\+ (.*)$/) {
|
||
|
$filename = $1;
|
||
|
$filename =~ s/^b\///;
|
||
|
$pos = 0;
|
||
|
next;
|
||
|
}
|
||
|
next if $filename =~ /^\/dev\/null$/;
|
||
|
if ($line =~ /^@@ -\d+,\d+\s\+(\d+),\d+ @@$/) {
|
||
|
$pos = $1 - 1;
|
||
|
next;
|
||
|
}
|
||
|
$pos = $pos + 1;
|
||
|
if ($line =~ /^\+(.*)/) {
|
||
|
checkLine($1, $filename, $pos);
|
||
|
}
|
||
|
}
|
||
|
close(PIPE);
|