diff -r 02d78c9f018e -r 3f65fd25dfd4 deprecated/buildtools/buildsystemtools/BuildServer.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/deprecated/buildtools/buildsystemtools/BuildServer.pl Mon Oct 18 16:16:46 2010 +0800 @@ -0,0 +1,125 @@ +# Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# Script to send commands to 1 or more Build Clients to perform parallel builds +# +# + +use strict; +use FindBin; # for FindBin::Bin +use Getopt::Long; +use File::Copy; + +# Add the directory contain this perl script into the path to find modules +use lib $FindBin::Bin; + +use BuildServer; +use ParseXML; + +# Turn on per command Buffering of STDOUT, so the log files are not so far behind what is actually happening +$| = 1; + +# Process the commandline +my ($iDataSource, $iPort, $iLogFile, $iEnvSource, $iConnectionTimeout, $iSocketConnections) = ProcessCommandLine(); + +# Create socket to server +&BuildServer::Start($iDataSource, $iPort, $iLogFile, $iEnvSource, $iConnectionTimeout, $iSocketConnections); + + +# ProcessCommandLine +# +# Inputs +# +# Outputs +# $iPort (Port to listen on for Build Clients) +# +# Description +# This function processes the commandline + +sub ProcessCommandLine { + my ($iHelp, @iPort, $iDataSource, $iLogFile, $iEnvSource, $iConnectionTimeout, $iSocketConnections); + GetOptions('h' => \$iHelp, 'd=s' =>\$iDataSource, 'p=i' => \@iPort, 'l=s' => \$iLogFile, 'e=s' =>\$iEnvSource, 't=s' =>\$iConnectionTimeout, 'c=s' =>\$iSocketConnections); + + if (($iHelp) || (scalar(@iPort) < 0) || (!defined $iDataSource) || (!defined $iLogFile)) + { + Usage(); + } elsif (! -e $iDataSource) { + die "Cannot open $iDataSource"; + } + if ((defined $iEnvSource) && (! -e $iEnvSource)) + { + die "Cannot open $iEnvSource"; + } + + &backupFile($iLogFile) if (-e $iLogFile); + + return($iDataSource,\@iPort,$iLogFile, $iEnvSource, $iConnectionTimeout, $iSocketConnections); +} + +# backupFile +# +# Inputs +# $iFile - filename to backup +# +# Outputs +# +# Description +# This function renames a file with the .baknn extension +sub backupFile +{ + my ($iFile) = @_; + + my ($iBak) = $iFile.".bak"; + my ($i, $freefilename); + # Loop until you find a free file name by increamenting the number on the end of the .bak extension + while (!$freefilename) + { + if (-e $iBak.$i) + { + $i++; + } else { + $iBak .= $i; + $freefilename = 1; + } + } + print "WARNING: $iFile already exists, creating backup of orignal with new name of $iBak\n"; + move($iFile,$iBak) or die "Could not backup $iFile to $iBak because of: $!\n"; +} + +# Usage +# +# Output Usage Information. +# + +sub Usage { + print <