common/tools/raptor/RaptorRecipe.pm
author Simon Howkins <simonh@symbian.org>
Mon, 05 Oct 2009 10:20:32 +0100
changeset 578 75fa4158340a
parent 383 52675b624b66
child 715 ee8b99c7aa0d
permissions -rw-r--r--
Fixed handling or regular expression strings, so the regular expression functiuonality works, not just substring detection! Added special handling if the severity marker is "ignore". Unsuprisingly, it ignores that line.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
     1
# Copyright (c) 2009 Symbian Foundation Ltd
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
     2
# This component and the accompanying materials are made available
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
     3
# under the terms of the License "Eclipse Public License v1.0"
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
     4
# which accompanies this distribution, and is available
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
     5
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
     6
#
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
     7
# Initial Contributors:
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
     8
# Symbian Foundation Ltd - initial contribution.
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
     9
#
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    10
# Contributors:
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    11
#
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    12
# Description:
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    13
# Raptor parser module.
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    14
# Extract, analyzes and dumps raptor recipes i.e. content of <recipe> tags from a raptor log file
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    15
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    16
package RaptorRecipe;
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    17
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    18
use strict;
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    19
use RaptorCommon;
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    20
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    21
our $reset_status = {};
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    22
my $buildlog_status = {};
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    23
my $buildlog_recipe_status = {};
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    24
my $buildlog_recipe_status_status = {};
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    25
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    26
$reset_status->{name} = 'reset_status';
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    27
$reset_status->{next_status} = {buildlog=>$buildlog_status};
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    28
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    29
$buildlog_status->{name} = 'buildlog_status';
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    30
$buildlog_status->{next_status} = {recipe=>$buildlog_recipe_status};
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    31
$buildlog_status->{on_start} = 'RaptorRecipe::on_start_buildlog';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    32
$buildlog_status->{on_end} = 'RaptorRecipe::on_end_buildlog';
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    33
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    34
$buildlog_recipe_status->{name} = 'buildlog_recipe_status';
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    35
$buildlog_recipe_status->{next_status} = {status=>$buildlog_recipe_status_status};
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    36
$buildlog_recipe_status->{on_start} = 'RaptorRecipe::on_start_buildlog_recipe';
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    37
$buildlog_recipe_status->{on_end} = 'RaptorRecipe::on_end_buildlog_recipe';
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    38
$buildlog_recipe_status->{on_chars} = 'RaptorRecipe::on_chars_buildlog_recipe';
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    39
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    40
$buildlog_recipe_status_status->{name} = 'buildlog_recipe_status_status';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    41
$buildlog_recipe_status_status->{next_status} = {};
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    42
$buildlog_recipe_status_status->{on_start} = 'RaptorRecipe::on_start_buildlog_recipe_status';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    43
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    44
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    45
my $filename = '';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    46
my $failure_item = 0;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    47
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    48
my $recipe_info = {};
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    49
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    50
my $characters = '';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    51
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    52
my $CATEGORY_RECIPEFAILURE = 'recipe_failure';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    53
my $CATEGORY_RECIPEFAILURE_ARMCC_CANNOTOPENSOURCEINPUTFILE = 'armcc_cannot_open_source_input_file';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    54
my $CATEGORY_RECIPEFAILURE_ARMLINK_COULDNOTOPENFILE = 'armlink_could_not_open_file';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    55
my $CATEGORY_RECIPEFAILURE_ELF2E32_COULDNOTOPENFILE = 'elf2e32_could_not_open_file';
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    56
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    57
sub process
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    58
{
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    59
	my ($text, $component, $phase, $recipe, $file, $line) = @_;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    60
	
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    61
	my $category = $CATEGORY_RECIPEFAILURE;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    62
	my $severity = '';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    63
	my $subcategory = '';
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    64
	
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    65
	if ($text =~ m,Error:  #5: cannot open source input file .*: No such file or directory,)
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    66
	{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    67
		$severity = $RaptorCommon::SEVERITY_MAJOR;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    68
		my $subcategory = $CATEGORY_RECIPEFAILURE_ARMCC_CANNOTOPENSOURCEINPUTFILE;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    69
		RaptorCommon::dump_fault($category, $subcategory, $severity, $component, $phase, $recipe, $file, $line);
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    70
	}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    71
	elsif ($text =~ m,Fatal error: L6002U: Could not open file .*: No such file or directory,)
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    72
	{
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    73
		$severity = $RaptorCommon::SEVERITY_MAJOR;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    74
		my $subcategory = $CATEGORY_RECIPEFAILURE_ARMLINK_COULDNOTOPENFILE;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    75
		RaptorCommon::dump_fault($category, $subcategory, $severity, $component, $phase, $recipe, $file, $line);
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    76
	}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    77
	elsif ($text =~ m,elf2e32 : Error: E1001: Could not open file : .*.,)
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    78
	{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    79
		$severity = $RaptorCommon::SEVERITY_MAJOR;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    80
		my $subcategory = $CATEGORY_RECIPEFAILURE_ELF2E32_COULDNOTOPENFILE;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    81
		RaptorCommon::dump_fault($category, $subcategory, $severity, $component, $phase, $recipe, $file, $line);
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    82
	}
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    83
	else # log everything by default
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    84
	{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    85
		RaptorCommon::dump_fault($category, $subcategory, $severity, $component, $phase, $recipe, $file, $line);
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    86
	}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    87
}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    88
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    89
sub on_start_buildlog
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    90
{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    91
	#print FILE "line,layer,component,name,armlicence,platform,phase,code,bldinf,mmp,target,source,\n";
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    92
	
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
    93
	RaptorCommon::init();
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    94
}
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    95
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    96
sub on_start_buildlog_recipe
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    97
{
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    98
	my ($el) = @_;
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
    99
	
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   100
	#print "on_start_buildlog_recipe\n";
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   101
	
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   102
	$recipe_info = {};
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   103
	
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   104
	my $attributes = $el->{Attributes};
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   105
	for (keys %{$attributes})
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   106
	{
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   107
		$recipe_info->{$attributes->{$_}->{'LocalName'}} = $attributes->{$_}->{'Value'};
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   108
		#print "$_ -> $attributes->{$_}->{'Value'}\n";
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   109
	}
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   110
}
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   111
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   112
sub on_chars_buildlog_recipe
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   113
{
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   114
	my ($ch) = @_;
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   115
	
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   116
	#print "on_chars_buildlog_recipe\n";
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   117
	
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   118
	$characters .= $ch->{Data};
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   119
	
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   120
	#print "characters is now -->$characters<--\n";
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   121
}
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   122
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   123
sub on_start_buildlog_recipe_status
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   124
{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   125
	my ($el) = @_;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   126
	
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   127
	my $attributes = $el->{Attributes};
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   128
	for (keys %{$attributes})
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   129
	{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   130
		if ($attributes->{$_}->{'LocalName'} eq 'code')
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   131
		{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   132
			$recipe_info->{$attributes->{$_}->{'LocalName'}} = $attributes->{$_}->{'Value'};
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   133
		}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   134
		elsif ($attributes->{$_}->{'LocalName'} eq 'exit')
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   135
		{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   136
			$recipe_info->{$attributes->{$_}->{'LocalName'}} = $attributes->{$_}->{'Value'};
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   137
		}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   138
		elsif ($attributes->{$_}->{'LocalName'} eq 'attempt')
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   139
		{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   140
			$recipe_info->{$attributes->{$_}->{'LocalName'}} = $attributes->{$_}->{'Value'};
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   141
		}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   142
	}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   143
}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   144
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   145
sub on_end_buildlog_recipe
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   146
{
383
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   147
	if ($recipe_info->{exit} =~ /failed/)
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   148
	{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   149
		# normalize bldinf path
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   150
		$recipe_info->{bldinf} = lc($recipe_info->{bldinf});
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   151
		$recipe_info->{bldinf} =~ s,^[A-Za-z]:,,;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   152
		$recipe_info->{bldinf} =~ s,[\\],/,g;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   153
		
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   154
		my $package = '';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   155
		if ($recipe_info->{bldinf} =~ m,/((os|mw|app|tools|ostools|adaptation)/[^/]*),)
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   156
		{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   157
			$package = $1;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   158
			$package =~ s,/,_,;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   159
		}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   160
		else
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   161
		{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   162
			print "WARNING: can't understand bldinf attribute of recipe: $recipe_info->{bldinf}. Won't dump to failed recipes file.\n";
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   163
		}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   164
		
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   165
		$characters =~ s,^[\r\n]*,,;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   166
		$characters =~ s,[\r\n]*$,,;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   167
		
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   168
		if ($package)
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   169
		{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   170
			$filename = "$::basedir/$package.txt";
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   171
			if (!-f$filename)
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   172
			{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   173
				print "Writing recipe file $filename\n";
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   174
				open(FILE, ">$filename");
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   175
				close(FILE);
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   176
			}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   177
			
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   178
			if ($failure_item == 0 and -f "$filename")
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   179
			{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   180
				open(FILE, "$filename");
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   181
				{
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   182
					local $/ = undef;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   183
					my $filecontent = <FILE>;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   184
					$failure_item = $1 if ($filecontent =~ m/.*---failure_item_(\d+)/s);
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   185
				}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   186
				close(FILE);
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   187
			}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   188
			
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   189
			$failure_item++;
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   190
			
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   191
			open(FILE, ">>$filename");
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   192
			print FILE "---failure_item_$failure_item\---\n";
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   193
			print FILE "$characters\n\n";
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   194
			close(FILE);
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   195
		}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   196
		
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   197
		process($characters, $recipe_info->{bldinf}, $recipe_info->{phase}, $recipe_info->{name}, "$package.txt", $failure_item);
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   198
	}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   199
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   200
	$characters = '';
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   201
}
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   202
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   203
sub on_end_buildlog
52675b624b66 Add raptor build html summary computation
Dario Sestito <darios@symbian.org>
parents: 242
diff changeset
   204
{
242
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   205
}
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   206
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   207
51e429810aba Modularized Raptor parser scripts
Dario Sestito <darios@symbian.org>
parents:
diff changeset
   208
1;