You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.4 KiB
70 lines
1.4 KiB
![]()
4 years ago
|
#! perl
|
||
|
|
||
|
|
||
|
use File::Find;
|
||
|
use Cwd;
|
||
|
use File::Basename;
|
||
|
|
||
|
# find(\&Visitfile,"../../../content/tf");
|
||
|
|
||
|
foreach $_ ( @sheetfiles )
|
||
|
{
|
||
|
$dest_sheet_name=$_;
|
||
|
$dest_sheet_name =~ s/\.mks/.sht/i;
|
||
|
$dest_sheet_name =~ s@/content/([^/]+)/materialsrc/@/game/\1/materials/@gi;
|
||
|
print "**Checking $_\n";
|
||
|
if (! -e $dest_sheet_name )
|
||
|
{
|
||
|
push @errors,"sheet $_ exists but not $dest_sheet_name";
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
# buid it and make sure they match
|
||
|
$cmd="cd ".dirname($_)." & mksheet ".basename($_)." test.sht";
|
||
|
$cmd=~tr/\//\\/;
|
||
|
$cmdout=`$cmd`;
|
||
|
if ( open(NEWFILE, dirname($_)."/test.sht") )
|
||
|
{
|
||
|
binmode NEWFILE;
|
||
|
open(OLDFILE, $dest_sheet_name ) || die "strange error - cant find $dest_sheet_name";
|
||
|
binmode OLDFILE;
|
||
|
{
|
||
|
local( $/, *FH ) ;
|
||
|
$old_data=<OLDFILE>;
|
||
|
$new_data=<NEWFILE>;
|
||
|
if ( $new_data ne $old_data )
|
||
|
{
|
||
|
push @errors,"Sheet source file $_ does not compile to the same output as the checked in $dest_sheet_name";
|
||
|
}
|
||
|
close OLDFILE;
|
||
|
close NEWFILE;
|
||
|
unlink dirname($_)."/test.sht";
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
push @errors, "Couldn't compile sheet $_ by running $cmd : \n$cmdout";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$errout=join("\n", @errors);
|
||
|
print $errout;
|
||
|
if (length($errout))
|
||
|
{
|
||
|
open(ERRFILE,">errors.txt") || die "can't write errors.txt";
|
||
|
print ERRFILE $errout;
|
||
|
close ERRFILE;
|
||
|
}
|
||
|
|
||
|
|
||
|
sub Visitfile
|
||
|
{
|
||
|
local($_)= $File::Find::name;
|
||
|
s@\\@\/@g;
|
||
|
if (m@content/(\S+)/.*\.mks$@i)
|
||
|
{
|
||
|
push @sheetfiles, $_;
|
||
|
}
|
||
|
}
|