diff -r 000000000000 -r 83f4b4db085c bldsystemtools/commonbldutils/buildenv.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bldsystemtools/commonbldutils/buildenv.pl Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,107 @@ +# Copyright (c) 2004-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 get version of various tools and Windows hotfixes and write to XML file +# +# + +use strict; +use Getopt::Long; +use File::Copy; +use Sys::Hostname; +use FindBin; +use lib $FindBin::Bin; +use Carp; +use buildenv; + +# Process the commandline +my ($gHostName, $gXMLfilePathname) = ProcessCommandLine(); + +&buildenv::Main($gHostName, $gXMLfilePathname); + +# ProcessCommandLine +# +# Inputs +# Command line options via GetOptions() +# +# Returns +# Hostname, XML output file name +# +# Description +# This function processes the commandline and also establishes hostname and hence XML file name + +sub ProcessCommandLine { + my ($iHelp, $iXMLfileLocation); + GetOptions('h' => \$iHelp, 'o=s' => \$iXMLfileLocation); + + if ($iHelp) { Usage(); } + + if (!defined $iXMLfileLocation) + { + $iXMLfileLocation = '.\\'; + } + + # add trailing backslash if missing, and add filename as hostname.xml + $iXMLfileLocation =~ s/[^\\]$/$&\\/; + +# Validate output directory. NB: If option not given, undef defaults to current directory! + confess("ERROR: $iXMLfileLocation not a directory: $!") if !-d $iXMLfileLocation; + my $iHostName = hostname; # Depends on "use Sys::Hostname;" + $iHostName =~ s/\.intra$//i; # Remove trailing ".intra" if any. + $iXMLfileLocation = $iXMLfileLocation . $iHostName ."\.xml"; + + &backupFile($iXMLfileLocation) if (-e $iXMLfileLocation); + return($iHostName, $iXMLfileLocation); # NB: $iXMLfileLocation is now the full pathname of the output file +} + +# backupFile +# +# Inputs +# $iFile - filename to backup +# +# Outputs +# +# Description +# This function renames an existing file with the .bak extension +sub backupFile +{ + my ($iFile) = @_; + my ($iBak) = $iFile.".bak"; + + if (-e $iFile) + { + 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 and exit +# + +sub Usage { + print <