uh_parser/RaptorError.pm
changeset 213 0244765a8d6f
parent 212 914d8060176c
child 214 cf1d34408de3
equal deleted inserted replaced
212:914d8060176c 213:0244765a8d6f
   175 
   175 
   176 sub on_end_buildlog_error
   176 sub on_end_buildlog_error
   177 {
   177 {
   178 	#print "on_end_buildlog_error\n";
   178 	#print "on_end_buildlog_error\n";
   179 	
   179 	
       
   180 	$characters =~ s,^[\r\n]*,,;
       
   181 	$characters =~ s,[\r\n]*$,,;
       
   182 	
   180 	my $package = '';
   183 	my $package = '';
       
   184 	# if bldinf attribute is not available then heuristically attempt to determine the package
       
   185 	if (!$raptor_error_info->{bldinf} &&
       
   186 		$characters =~ m,.*?(([/\\]sf)?[/\\](os|mw|app|tools|ostools|adaptation)[/\\][^/^\\]*[/\\]),s)
       
   187 	{
       
   188 		$raptor_error_info->{bldinf} = "$1... (guessed)";
       
   189 	}
       
   190 	
   181 	if ($raptor_error_info->{bldinf})
   191 	if ($raptor_error_info->{bldinf})
   182 	{
   192 	{
   183     $::allbldinfs->{$raptor_error_info->{bldinf}} = 1;
   193 		$::allbldinfs->{$raptor_error_info->{bldinf}} = 1;
   184     
   194     
   185     # normalize bldinf path
   195 		# normalize bldinf path
   186 		$raptor_error_info->{bldinf} = lc($raptor_error_info->{bldinf});
   196 		$raptor_error_info->{bldinf} = lc($raptor_error_info->{bldinf});
   187 		$raptor_error_info->{bldinf} =~ s,^[A-Za-z]:,,;
   197 		$raptor_error_info->{bldinf} =~ s,^[A-Za-z]:,,;
   188 		$raptor_error_info->{bldinf} =~ s,[\\],/,g;
   198 		$raptor_error_info->{bldinf} =~ s,[\\],/,g;
   189 		
   199 		
   190 		if ($raptor_error_info->{bldinf} =~ m,/((os|mw|app|tools|ostools|adaptation)/[^/]*),)
   200 		if ($raptor_error_info->{bldinf} =~ m,/((os|mw|app|tools|ostools|adaptation)/[^/]*),)
   194 		}
   204 		}
   195 		else
   205 		else
   196 		{
   206 		{
   197 			print "WARNING: can't understand bldinf attribute of raptor error: $raptor_error_info->{bldinf}. Won't associate to package.\n";
   207 			print "WARNING: can't understand bldinf attribute of raptor error: $raptor_error_info->{bldinf}. Won't associate to package.\n";
   198 		}
   208 		}
   199   }
   209 	}
   200 	
       
   201 	$characters =~ s,^[\r\n]*,,;
       
   202 	$characters =~ s,[\r\n]*$,,;
       
   203 	
   210 	
   204 	if ($characters =~ m,[^\s^\r^\n],)
   211 	if ($characters =~ m,[^\s^\r^\n],)
   205 	{
   212 	{
   206     my $bldinf_field = '';
   213 		$filename = "$::raptorbitsdir/raptor_error.txt";
   207     if ($package)
   214 		$filename = "$::raptorbitsdir/$package.txt" if ($package);
   208 		{
       
   209 			$filename = "$::raptorbitsdir/$package.txt";
       
   210 			$bldinf_field = $raptor_error_info->{bldinf};
       
   211 		}
       
   212 		else
       
   213 		{
       
   214 		  $filename = "$::raptorbitsdir/raptor_error.txt";
       
   215 		}
       
   216 		
   215 		
   217 		if (!-f$filename)
   216 		if (!-f$filename)
   218 		{
   217 		{
   219 			print "Writing file $filename\n";
   218 			print "Writing file $filename\n";
   220 			open(FILE, ">$filename");
   219 			open(FILE, ">$filename");
   221 			close(FILE);
   220 			close(FILE);
   222 		}
   221 		}
   223 		
   222 		
   224 		my $dumped = process($characters, $::current_log_file, $bldinf_field, '', '', '', "$package.txt");
   223 		my $dumped = process($characters, $::current_log_file, $raptor_error_info->{bldinf}, '', '', '', "$package.txt");
   225 		
   224 		
   226 		if ($dumped)
   225 		if ($dumped)
   227 		{
   226 		{
   228 			open(FILE, ">>$filename");
   227 			open(FILE, ">>$filename");
   229 			print FILE "---failure_item_$::failure_item_number\---\n";
   228 			print FILE "---failure_item_$::failure_item_number\---\n";