bldsystemtools/commonbldutils/GenResult/GenDiamondsXml.pm
changeset 0 83f4b4db085c
child 1 d4b442d23379
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bldsystemtools/commonbldutils/GenResult/GenDiamondsXml.pm	Tue Feb 02 01:39:43 2010 +0200
@@ -0,0 +1,114 @@
+# 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 Generate the XML file that is suitable for Diamonds
+# 
+#
+package GenDiamondsXml;
+use FindBin;
+use lib "$FindBin::Bin/lib";
+use strict;
+use Text::Template;
+use Text::Template 'fill_in_file';
+use publishDiamonds;
+use ZipDiamondsXml;
+
+my $Debug = 0;
+my $MainXML = "Main.xml";
+my @start;
+if($ENV{BuildSubType} eq "Daily")
+{
+    @start = ('build.tmpl','schema.tmpl','locations.tmpl','tools.tmpl','content.tmpl','files.tmpl');
+}
+elsif($ENV{BuildSubType} eq "Test")
+{
+    @start = ('build.tmpl','schema.tmpl','locations.tmpl','tools.tmpl','files.tmpl');
+}
+
+my %states = (
+'STARTBUILD' => {
+            'START' => \@start
+            #~ 'START' => ['files.tmpl']
+        },
+'GT' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl', 'faults.tmpl']
+        },
+'TV' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'ROM' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'CBR' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'CDB' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'BUILD' => {
+            'START' => ['stage.tmpl'],
+            'STOP' => ['stage.tmpl','faults.tmpl']
+        },
+'ENDBUILD' => {
+            'START' => ['diamonds_finish.tmpl', 'status.tmpl']
+        }
+);
+
+sub main
+{
+  my ($iStage, $iState, $iServer) = @_;
+  print "STAGE: $iStage\t STATE: $iState\n";
+  my %vars = ();
+  $vars{'iStage'} = $iStage;
+  $vars{$iState} = 1;
+  my $LogsLocation = $ENV{LogsDir}."\\";
+  my @toMerge = ();
+  my $BatFile = "SendXmls.bat";
+  open (BAT,">>$BatFile") or warn "$BatFile: $!\n";
+
+  foreach my $tmpl (@{$states{$iStage}{$iState}})
+  {
+    my $suffix = "_".$iStage."_".$iState;
+    my $XmlName = $tmpl;
+    $XmlName =~ s/\.tmpl/$suffix\.xml/;
+    my $outfile = $LogsLocation.$XmlName;
+    $tmpl = "$FindBin::Bin/".$tmpl;
+    open(OUT,">$outfile");
+    print "Processing $tmpl...\n" if $Debug;
+    my $template = Text::Template->new(TYPE => 'FILE',  SOURCE => $tmpl)or die "Couldn't construct template: $Text::Template::ERROR";
+    my $success = $template->fill_in(OUTPUT => \*OUT, DELIMITERS => [ '[@--', '--@]' ], HASH => \%vars) or warn "$Text::Template::ERROR\n";
+    close(OUT);
+    if ($success)
+    {
+      print "Successfully processed $tmpl\n" if $Debug;
+      &publishDiamonds::publishToDiamonds($outfile,$iServer) if($ENV{BuildSubType} eq "Daily");
+      &ZipDiamondsXml::main($outfile);
+      print BAT "perl -e \"use publishDiamonds; &publishDiamonds::publishToDiamonds(\'$XmlName\',\'$iServer\');\"\n";
+      unlink ($outfile) or warn "Error in deleting: $!\n";
+    }
+  }
+  close(BAT);
+  if ($iStage eq "ENDBUILD")
+  {
+      &ZipDiamondsXml::main($BatFile);
+      unlink ($BatFile) or warn "Error in deleting: $!\n";
+      &ZipDiamondsXml::main($FindBin::Bin."/"."publishDiamonds.pm");
+      &ZipDiamondsXml::main($FindBin::Bin."/"."send_xml_to_diamonds.pl");
+  }
+}
+1;