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"; |