diff -r 000000000000 -r 83f4b4db085c bldsystemtools/commonbldutils/GetDPComp/GetDPComp.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bldsystemtools/commonbldutils/GetDPComp/GetDPComp.pl Tue Feb 02 01:39:43 2010 +0200 @@ -0,0 +1,125 @@ +#!/usr/bin/perl + +=head1 NAME + +GetDPComp.pl + +=head1 SYNOPSIS + +GetDPComp.pl + +=head1 DESCRIPTION + +This script is designed to use latestver, envsize and getrel commands from the CBR tools to find and get the latest green version of one DP SF component(s). + +=head1 COPYRIGHT + +Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +All rights reserved. + +=cut + +use strict; +use LWP::UserAgent; +use Getopt::Long; +use FindBin; +use lib "$FindBin::Bin"; +use GetDPComp; + +my ($iComponentNames, $iInputFile, $iBaselineComponentName, $iBaselineComponentVersion, $iSource, $iOutputFile) = ProcessCommandLine(); +$iBaselineComponentName = GetDPComp::LRtrim($iBaselineComponentName); +$iBaselineComponentVersion = GetDPComp::LRtrim($iBaselineComponentVersion); + +if (!defined $iBaselineComponentName) { + $iBaselineComponentName = "sf_tools_baseline"; +} + +my $retval = 1 ; +($iBaselineComponentVersion, $retval) = GetDPComp::ValidateVersion( $iBaselineComponentVersion, $iBaselineComponentName); +if ($retval == 0 ) { + print "\nERROR: Input version is wrong. \n"; + exit ; +} + +my %ComponentVersion = GetDPComp::GenerateComponentVersion( $iBaselineComponentVersion, $iBaselineComponentName ) ; + +if ( scalar(@$iComponentNames) == 0 ) { + open(INPUT, "<$iInputFile") or die $! ; + (@$iComponentNames) = ; + close(INPUT); +} + +if ($iSource) +{ + $iSource = "-s"; +} else { + $iSource = ""; +} + +foreach my $includecomponent ( @$iComponentNames ){ + $includecomponent = GetDPComp::LRtrim( $includecomponent ); + print "getrel -v $iSource -o $includecomponent $ComponentVersion{$includecomponent} \n"; + `getrel -v $iSource -o $includecomponent $ComponentVersion{$includecomponent} `; +} + +open(UPDATE, ">$iOutputFile") or die $! ; +foreach my $includecomponent ( @$iComponentNames ){ + $includecomponent = GetDPComp::LRtrim( $includecomponent ); + print UPDATE "$includecomponent => $ComponentVersion{$includecomponent} \n"; +} +close(UPDATE); + +# ProcessCommandLine +# +# Description +# This function processes the commandline +sub ProcessCommandLine { + my (@iComponentNames, $iInputFile, $iBaselineComponentName, $iBaselineComponentVersion, $iSource, $iOutputFile, $iHelp); + + GetOptions('c=s@' => \@iComponentNames, 'cf=s' => \$iInputFile, 'bc=s' => \$iBaselineComponentName, 'bv=s' => \$iBaselineComponentVersion, 's' => \$iSource, 'o=s' => \$iOutputFile, 'h' => \$iHelp); + Usage() if ($iHelp); + + Usage("-c and -cf can not use together") if ( (scalar(@iComponentNames) > 0 ) and (defined $iInputFile)); + Usage("Must specify component via -c or component list via -cf") if (( scalar(@iComponentNames) == 0 ) and ( ! defined $iInputFile) ); + Usage("Must specify baseline component version via -bv and output file name via -o") if ((! defined $iBaselineComponentVersion) or (! defined $iOutputFile) ); + + return(\@iComponentNames, $iInputFile, $iBaselineComponentName, $iBaselineComponentVersion, $iSource, $iOutputFile); +} + +# Usage +# +# Output Usage Information. +# + +sub Usage { + my ($reason) = @_; + + print "ERROR: $reason\n" if ($reason); + + print <, [Multiple -c options allowed], this option should not use together with -cf option. + -cf , this option should not use together with -c option. + -bc , e.g. developer_product_baseline, this argument is optional. + -bv , valid input: latest, green, #specifiednumber. + -s install (and overwrite) source code, this is optional argument. + -o + -h help + + + Example Commandline + GetDPComp.pl -s -c tools_sbs -bc developer_product_baseline -bv green -o component_version.txt + GetDPComp.pl -s -c tools_sbs -bc developer_product_baseline -bv latest -o component_version.txt + GetDPComp.pl -s -c tools_sbs -bc developer_product_baseline -bv DP00454_DeveloperProduct -o component_version.txt + GetDPComp.pl -cf component_list.txt -bv green -o component_version.txt + GetDPComp.pl -cf component_list.txt -bv latest -o component_version.txt + GetDPComp.pl -cf component_list.txt -bv DP00454_DeveloperProduct -o component_version.txt + GetDPComp.pl -c dev_build_sbsv2_raptor -c dev_build_sbsv2_cpp-raptor -c dev_hostenv_dist_cygwin-1.5.25 -c dev_hostenv_dist_mingw-5.1.4 -c dev_hostenv_pythontoolsplat_python-2.5.2 -bv green -o component_version.txt + GetDPComp.pl -h + +USAGE_EOF + exit 1; +} \ No newline at end of file