find-build-errors revision 702
561N/A# Copyright 2009 Sun Microsystems, Inc. All rights reserved. 561N/A# Use is subject to license terms. 919N/A# Permission is hereby granted, free of charge, to any person obtaining a 919N/A# copy of this software and associated documentation files (the 919N/A# "Software"), to deal in the Software without restriction, including 919N/A# without limitation the rights to use, copy, modify, merge, publish, 919N/A# distribute, and/or sell copies of the Software, and to permit persons 919N/A# to whom the Software is furnished to do so, provided that the above 919N/A# copyright notice(s) and this permission notice appear in all copies of 919N/A# the Software and that both the above copyright notice(s) and this 919N/A# permission notice appear in supporting documentation. 919N/A# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 919N/A# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 919N/A# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT 919N/A# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 919N/A# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL 919N/A# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING 561N/A# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 561N/A# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 561N/A# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 561N/A# Except as contained in this notice, the name of a copyright holder 561N/A# shall not be used in advertising or otherwise to promote the sale, use 561N/A# or other dealings in this Software without prior written authorization 837N/A# of the copyright holder. 911N/A# ident "@(#)find-build-errors 1.3 09/05/13 SMI" 911N/Arequire 5.005;
# minimal Perl version required # climb the tree, removing one parent at a time to find the logfile # print "$logfile not found\n"; print "Scanning $logfile for error messages...\n\n"; # Finished if we see the end line if (($l =~ m{^\#\# making \S+ in \S+\.\.\.$}ms) || # open-src pattern ($l =~ m{^\S+ing( \S+)* in \S+\.\.\.$}ms)) { # xc pattern # If we already hit an error, skip the rest of this module # Add this line to the saved output, combine with previous if previous # Skip ahead to next line if this line ends with \ next if ($l =~ m{\\\Z}ms); if ($l =~ m{\*\*\* }ms) { # scan back to figure out how far back to print # print "lastmake: $lastmake, lastcom: $lastcommand, lastplus: $lastplus, line #$ln: $sl\n"; # don't treat this as a command } elsif ($sl =~ m{^\+ }ms) { # print from start of shell's set -x output, not end # print "lastmake: $lastmake, lastcommand: $lastcommand\n"; print "\n", '-'x78, "\n"; # Look for package build results # print lines where messages about COPYING file errors appear # between "Copying package descriptions" & "Building packages" # Haven't rebuilt packages since last build, so no point reporting errors # No packaging log found in build log, try to guess where it is # Clear saved lines for each new package