mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-09 02:09:35 +00:00
1
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
use strict;
|
||||
|
||||
my $forceBuild = 0;
|
||||
if ( $ARGV[1] =~ /-forcebuild/ )
|
||||
{
|
||||
$forceBuild = 1;
|
||||
}
|
||||
|
||||
# Read in the list of changed maps
|
||||
|
||||
my $filename = "buildlist.txt";
|
||||
|
||||
open(INFILE, $filename);
|
||||
my @maps = <INFILE>;
|
||||
close( INFILE );
|
||||
|
||||
# forcelist.txt allows maps to be manually added to the build.
|
||||
|
||||
open(INFILE, "forcelist.txt");
|
||||
my @forcemaps = <INFILE>;
|
||||
close( INFILE );
|
||||
|
||||
my $retval = 1;
|
||||
|
||||
system( "echo. > $filename" );
|
||||
system( "echo. > forcelist.txt" );
|
||||
|
||||
# Run through the list of maps to see if any should be built
|
||||
|
||||
for( @maps)
|
||||
{
|
||||
if( /updating (.*)|adding (.*)/ )
|
||||
{
|
||||
# Check if this map should be built now
|
||||
if ( shouldBuild( $1 ) == 0 )
|
||||
{
|
||||
next;
|
||||
}
|
||||
|
||||
# Add this map name to the build list
|
||||
|
||||
system( "p4 sync -f $1 >> $filename" );
|
||||
system( "echo Adding to the build list: $1 >> log.txt" );
|
||||
$retval = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for( @forcemaps )
|
||||
{
|
||||
if ( /\.vmf/ )
|
||||
{
|
||||
# Add this map name to the build list
|
||||
|
||||
$_ =~ /(.*)/;
|
||||
system( "p4 sync -f $1 >> $filename" );
|
||||
system( "echo Forcing add to the build list: $1 >> log.txt" );
|
||||
$retval = 0;
|
||||
}
|
||||
}
|
||||
|
||||
exit $retval;
|
||||
|
||||
#-----------------------------------
|
||||
# Check if this map should build now
|
||||
#-----------------------------------
|
||||
sub shouldBuild
|
||||
{
|
||||
my $map = shift;
|
||||
|
||||
# if command line flag was set, build the map
|
||||
|
||||
if ( $forceBuild == 1 )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
# if the map line contains the force flag, build the map
|
||||
|
||||
if ( $map =~ /-forcebuild/ )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
# Dump the comments from the last checkin of this map
|
||||
|
||||
system( "p4 changes -m 1 -s submitted -l $map > comments.txt" );
|
||||
|
||||
# parse comments for the autocompile keyword
|
||||
|
||||
open(INFILE, "comments.txt");
|
||||
my @comments = <INFILE>;
|
||||
close(INFILE);
|
||||
|
||||
for( @comments )
|
||||
{
|
||||
if ( /autocompile/i )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user