bldsystemtools/commonbldutils/PC_P4Table.pm
changeset 0 83f4b4db085c
child 10 d4b442d23379
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/PC_P4Table.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,202 @@
+# Copyright (c) 2005-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 generates PC and Perforce table when called from
+# BuildLaunch.xml file.
+# 
+#
+
+#!/usr/bin/perl -w
+package PC_P4Table;
+use strict;
+use Time::Local;
+
+my $iBuildLaunchFileLocation;
+my $iLinkPathLocation = "http://IntWeb/bitr/review_release.php";
+my $iBuildLaunchFileFound    = "1";
+my $iClientSpecFileLocation = "";
+
+my @gProduct_Clientinfo = (
+			['7.0s','Symbian_OS_v7.0'],
+			['7.0e','Symbian_OS_v7.0_enhance'],
+			['7.0','Symbian_OS_v7.0'],
+			['8.0a','Symbian_OS_8.0'],
+			['8.1a','Symbian_OS_v8.1'],
+			['8.1b','Symbian_OS_v8.1'],
+			['9.1','master'],
+			['9.2','master'],
+			['9.3','master'],
+			['Future','master'],
+			['9.4','master'],
+			['9.5','master'],
+			['9.6','master'],
+			['tb92','master'],
+                        ['tb101sf','master']
+		   );
+
+#####################################################################
+#Sub-Routine Name:getbuildloc
+#Inputs          :Product version
+#Outputs         :Returns log directory Location for product
+#Description     :
+#####################################################################
+sub getbuildloc
+  {
+  my $iProducts = shift;
+  my $i = 0;
+   
+  while($i < $#gProduct_Clientinfo+1)
+	{
+	 if ($iProducts eq $gProduct_Clientinfo[$i][0])
+	    {
+	    return $gProduct_Clientinfo[$i][1];
+	    }	    
+	 $i++;
+	}
+	 
+  return("Logs location not Found for product");
+ } 
+		   
+		   
+# outline style sheet internally  
+my $gStyleSheet = " \n
+
+                <style type=\"text/css\">                    
+                    h1,h2,h3
+                    {
+                        font-family: \"lucida calligraphy\", arial, 'sans serif'; 
+                    }
+
+                    p,table,li,
+                    {
+                        font-family: \"lucida calligraphy\", arial, 'sans serif'; 
+                        margin-left: 8pt;
+                    }
+
+                    body
+                    {
+                        background-color:#fffaf0;
+                    }
+
+                    p,li,th,td
+                    {
+                        font-size: 10pt;
+                        vertical-align:top;
+                    }
+
+                    h1,h2,h3,hr {color:#483d8b;}
+
+                    table {border-style:outset}
+                    li {list-style: square;}
+
+                    a.hoverlink:link {color: #0000ff; text-decoration: none}
+                    a.hoverlink:visited {color: #0000ff; text-decoration: none}
+                    a.hoverlink:hover {text-decoration: underline}
+                </style>";
+
+
+##########################################################################
+#
+# Name    :  setBrowserFriendlyLinks()
+# Synopsis:  Re-formats UNC path to file, with a Opera/Fire-Fox friendly
+#            version. Lotus Notes may cause problems though.
+# Inputs  :  UNC Path scalar
+# Outputs :  Scalar
+#
+##########################################################################
+sub setBrowserFriendlyLinks {
+    my ($iOldLink) = @_;
+    
+    $iOldLink =~ s/\\/\//g;  # swap backslashes to fwd slashes
+    return "file:///".$iOldLink;
+}
+##########################################################################
+#
+# Name	   : getBuildTime
+# Synopsis : Create a string containing the build timestamp
+# Inputs   : None
+# Outputs  : GMT timestamp
+##########################################################################
+sub getBuildTime
+{
+	my $time = gmtime(time);	# Get current GMT time
+	$time .= " GMT";			# Append GMT marker
+	return $time;				# Return it
+}
+
+##########################################################################
+#
+# Name    :  generateHTMLSummary()
+# Synopsis:  Creates an HTML report for the specified build.
+# Inputs  :  Scalar containing the build snapshot and product type
+# Outputs :  HTML report, published in current working dir
+##########################################################################
+sub generateHTMLSummary {
+    
+    my ($iSnapshot, $iProduct,$iChangeList, $iClientSpec) = @_;
+    my $iLogLocation = getbuildloc( $iProduct );
+    $iClientSpec =~ s/\/\/cedar/\/cedar/g;
+    my $iBuildLaunchFileLocation = "\\Builds01\\devbuilds\\$iLogLocation\\$iSnapshot\_Symbian_OS_v$iProduct\\logs\\BuildLaunch.xml";
+
+    open (SUMMARY, "+> $iSnapshot"."_"."$iProduct"."PC_Perforce_report.html") or die "ERROR:Can't open file : $!";
+       
+    my $html_start = "\n
+                    <HTML>
+                    <HEAD>" .
+                    $gStyleSheet .
+                    "<TITLE>" . "$iSnapshot "."$iProduct ". "PC and Perforce Reference</TITLE>
+                    <BODY BGCOLOR=\"FFFFFF\">
+
+                    </HEAD>
+                    <BODY>".
+		    
+                    "<TABLE width=\"100%\" border =\"1\" cellpadding=\"0\" cellspacing=\"0\">" .
+		    " <tr bgcolor=\"#006699\" align=\"top\"><th colspan=\"2\"> <font color=\"#ffffff\">PC and Perforce Reference for $iProduct</font></th> </tr>".
+		    " <tr align=\"top\"><td colspan=\"2\">
+		    
+		    <font size=\"2\"><p>
+                        [ <a class =\"hoverlink\" href = \"" . $iLinkPathLocation."\">  External Builds Info</a>  ]
+                        "."\n </p>
+                    </font>
+		    </td> </tr>".
+			"\n
+			<tr>
+			<th bgcolor=\"#006699\" align =\"left\" width=\"300\"> <font color=\"#ffffff\">BuildMachineName</font></th>" .
+			"<td align = \"left\">".`hostname`."" ."</td>".
+		        "</tr>\n".
+			"\n
+			<tr>
+			<th bgcolor=\"#006699\" align =\"left\"> <font color=\"#ffffff\">ClientSpec</font></th>" .
+			"<td align = \"left\">$iClientSpec </td>
+                        ".
+		        "</tr>\n".
+			"\n
+			<tr>
+			<th bgcolor=\"#006699\" align =\"left\"> <font color=\"#ffffff\">Perforce Changelist</font></th>" .
+			"<td align = \"left\">$iChangeList </td>" .
+		        "</tr>\n".
+			"\n
+			<tr>
+			<th bgcolor=\"#006699\" align =\"left\"> <font color=\"#ffffff\">Build Start Time</font></th>" .
+			"<td align = \"left\">".getBuildTime()."" ."</td>".
+		        "</tr>\n".
+		    "</table>
+                      </BODY>
+                      </html>
+                      ";
+                      
+                      
+    print SUMMARY $html_start;
+    
+    close SUMMARY;
+}