diff -r 000000000000 -r 83f4b4db085c bldsystemtools/commonbldutils/GenResult/GenDiamondsXml.pm --- /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;