Files
client-tools/exe/shared/scriptlint/lint-messageTo.pl
2015-08-04 12:05:18 -05:00

66 lines
1.2 KiB
Perl

#!/usr/bin/perl
$fileName = $ARGV[0];
open(SOURCE, $fileName) or die "Can't open $fileName";
while(<SOURCE>)
{
$scriptFile[++$#scriptFile] = $_;
}
$lineNo = 0;
foreach $l(@scriptFile)
{
$lineNo = $lineNo + 1;
$messageHandler = "";
if ($l =~ /messageHandler\s*(\w+)\s*\(\)/)
{
if(length($1) > 0)
{
$messageHandler = $1;
$scope = 0;
for($i = $lineNo; $i < $#scriptFile; ++$i)
{
if( $scriptFile[$i] =~ /(\{).*/ )
{
if($1 eq "{")
{
$scope = $scope + 1;
}
}
if( $scriptFile[$i] =~ /(\}).*/ )
{
if($1 eq "}")
{
$scope = $scope - 1;
if($scope < 1)
{
$i = $#scriptFile;
next;
}
}
}
if ($scriptFile[$i] =~ /messageTo/)
{
if ($scriptFile[$i] =~ /($messageHandler)/)
{
if($scope == 1)
{
$lineno = $i + 1;
if($scriptFile[$i] =~ /true/)
{
print "$fileName:$lineno: WARNING: $messageHandler may be in an infinite messageTo loop AND is persisting the message\n";
}
else
{
print "$fileName:$lineno: WARNING: $messageHandler may be in an infinite messageTo loop\n";
}
}
}
}
}
}
}
}