Team Fortress 2 Source Code as on 22/4/2020
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.
|
|
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; }
|