bldsystemtools/commonbldutils/getlatestrel.pl
changeset 0 83f4b4db085c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/getlatestrel.pl	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,124 @@
+#!/usr/bin/perl
+
+=head1 NAME
+
+Getlatestrel.pl
+
+=head1 SYNOPSIS
+
+Getlatestrel.pl
+
+=head1 DESCRIPTION
+
+This script is designed to use latestver from the CBR tools to find at get the
+latest version of a component.
+
+If a baseline version is provided, then it will install the version of the component
+released as part of that specified baseline.
+
+=head1 COPYRIGHT
+
+Copyright (c) 2008 Symbian Ltd. All rights reserved
+
+=cut
+
+use strict;
+
+use Getopt::Long;
+
+my ($iComp, $iSource, $iVersion, $iBaselineComponent, $iBaselineVersion) = ProcessCommandLine();
+
+if ($iSource)
+{
+  $iSource = "-s";
+} else {
+  $iSource = "";
+}
+if (!defined $iVersion)
+{
+  if (defined $iBaselineVersion) {
+
+    if (!defined $iBaselineComponent) {
+      $iBaselineComponent = "gt_techview_baseline";
+    }
+    my $envout= `envsize -v $iBaselineComponent $iBaselineVersion 2>&1`;
+
+    # match component    
+    if ($envout =~ m/(Adding up size of )$iComp (.*)/) {
+      print "INFO: Component $iComp version $2 found for baseline $iBaselineComponent $iBaselineVersion\n";
+      $iVersion = $2;
+    }elsif ($envout =~ m/(didn't exist)/) {
+      print "WARNING: Baseline $iBaselineVersion didn't exist, unable to check $iBaselineComponent, geting latest version\n";
+      $iVersion = `latestver $iComp`;  
+    }
+  } else {
+    $iVersion = `latestver $iComp`;  
+  }
+}
+
+chomp($iVersion);
+
+my $getreloutput = `getrel -vv $iSource -o $iComp $iVersion`;
+
+if (($getreloutput =~ /^Installing $iComp $iVersion/) || 
+    ($getreloutput =~ /^Switching $iComp/)            ||
+    ($getreloutput =~ /already installed and clean/)) {
+  
+  print $getreloutput;
+} else {
+  print "ERROR: could not getrel $iComp $iVersion - $getreloutput\n";
+}
+
+
+
+# ProcessCommandLine
+#
+# Inputs
+#
+# Outputs
+# $ilog - logfile location
+#
+# Description
+# This function processes the commandline
+sub ProcessCommandLine {
+  my ($iHelp, $iComp, $iSource, $iVersion, $iBaselineComponent, $iBaselineVersion);
+
+  GetOptions('h' => \$iHelp, 'c=s' => \$iComp, 's' => \$iSource, 'v=s' => \$iVersion, 'bc=s' => \$iBaselineComponent, 'bv=s' => \$iBaselineVersion);
+
+  if (($iHelp) || (!defined $iComp))
+  {
+    &Usage();
+  } else {
+    return($iComp, $iSource, $iVersion, $iBaselineComponent, $iBaselineVersion);
+  }
+}
+
+# Usage
+#
+# Output Usage Information.
+#
+
+sub Usage {
+  print <<USAGE_EOF;
+
+  Usage: getlatestrel.pl [Args/options]
+
+  Args: (required)
+  
+  -c  [Component name]  Name of component to get 
+
+  options:
+
+  -h                    help
+  -s                    install (and overwrite) source code
+  -v  [version string]  Optional version to get instead of latest available.
+
+  -bc [component str ]  Optional baseline component [default is gt_techview_baseline]
+  -bv [version   str ]  Optional baseline version
+  
+  Example Commandline
+  getlatestrel.pl -c tools_testexecute
+
+USAGE_EOF
+	exit 1;
+}