diff options
author | asami <asami@FreeBSD.org> | 2000-08-29 07:50:12 +0000 |
---|---|---|
committer | asami <asami@FreeBSD.org> | 2000-08-29 07:50:12 +0000 |
commit | ea0e0730843271998a2910650d7d98e8bcf89210 (patch) | |
tree | fab70c1c19f36c8c035393d1cf528d71587a018e /Tools | |
parent | 0671258eac8175003701ee22916c139692e9ecf6 (diff) | |
download | FreeBSD-ports-ea0e0730843271998a2910650d7d98e8bcf89210.zip FreeBSD-ports-ea0e0730843271998a2910650d7d98e8bcf89210.tar.gz |
(1) Use timestamp file to make log processing lazier -- only process
logs when there are logs newer than the .stamp file.
(2) Print time cvs update is done for reference.
(3) Print number of affected ports (the "aff." field). Basically the
number of times the port appears in INDEX minus one (itself), so
it won't take care of all chained build dependencies, but it will
give you some idea how critical a port is when looking at the long
list.
(4) Catch a few more error cases.
Diffstat (limited to 'Tools')
-rwxr-xr-x | Tools/portbuild/scripts/processlogs | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/Tools/portbuild/scripts/processlogs b/Tools/portbuild/scripts/processlogs index 9cf51d6..700a5cb 100755 --- a/Tools/portbuild/scripts/processlogs +++ b/Tools/portbuild/scripts/processlogs @@ -2,19 +2,31 @@ of=index.html.new +# delete .new file if it is more than a day old +find $of -mtime 2 -delete 2>/dev/null + +if [ -f $of ]; then exit; fi + +if [ -e .stamp -a $(echo $(find . -newer .stamp -type f -name '*.log' 2>/dev/null | wc -l)) = "0" ]; then exit; fi + echo "<html><head><title>Package building errors</title>" >$of echo "<h1>Package building errors</h1>" >>$of echo "</head><body>" >>$of +touch .stamp + set *.log if [ $# = 1 -a "x$1" = "x*.log" ]; then echo "No errors (yet)" >>$of else num=$# + if [ -s cvsdone ]; then + echo "(cvs update finished at: $(cat cvsdone))<br>" >> $of + fi echo "(timestamp of newest log: $(ls -rtTl *.log | tail -1 | awk '{printf("%s %s %s %s\n",$6,$7,$8,$9)}'))<br><br>" >> $of echo "<table border=1>" >>$of - echo "<tr><th>Log</th><th>Size</th><th>Repository</th><th>Maintainer</th><th>Reason</th></tr>" >>$of + echo "<tr><th>Log</th><th>Aff.</th><th>Size</th><th>Repository</th><th>Maintainer</th><th>Reason</th></tr>" >>$of while [ $# -gt 0 ]; do echo -n "<tr><td>" >>$of echo -n "<a name=\"$1\"></a>" >> $of @@ -22,6 +34,9 @@ else echo -n $(basename $1 .log) >>$of echo -n "</a>" >>$of echo -n "</td><td align=right>" >>$of + affected=$(($(grep -cF $(basename $1 .log) < INDEX) - 1)) + if [ $affected != 0 ]; then echo -n $affected >>$of; fi + echo -n "</td><td align=right>" >>$of size=$(/bin/ls -sk $1 | awk '{print $1}') echo -n "$size KB" >>$of echo -n "</td><td>" >>$of @@ -32,9 +47,11 @@ else maints="$maints $maint" echo -n "<a href=\"mailto:$maint\">$maint</a>" >>$of echo -n "</td><td>" >>$of - if grep -q 'Checksum mismatch' $1; then + if grep -q 'list of extra files and directories' $1; then + reason="extra"; tag="extra" + elif grep -q 'Checksum mismatch' $1; then reason="checksum"; tag="checksum" - elif grep -q 'No checksum recorded for' $1; then + elif grep -qE '(No checksum recorded for|(Maybe|Either) .* is out of date, or)' $1; then reason="files/md5 update"; tag="md5" elif grep -qE '(configure: error:|script.*failed: here are the contents of)' $1; then reason="configure error"; tag="configure" @@ -72,6 +89,8 @@ else fi elif grep -q "cd: can't cd to" $1; then reason="NFS"; tag="nfs" + elif grep -qE "pkg_add: (can't find enough temporary space|projected size of .* exceeds available free space)" $1; then + reason="disk full"; tag="df" elif grep -qE '(parse error|too (many|few) arguments to|argument.*doesn.*prototype|incompatible type for argument|conflicting types for|undeclared \(first use (in |)this function\)|incorrect number of parameters|has incomplete type and cannot be initialized)' $1; then reason="compiler error"; tag="cc" elif grep -qE '(ANSI C.. forbids|is a contravariance violation|changed for new ANSI .for. scoping|[0-9]: passing .* changes signedness|discards qualifiers|lacks a cast|redeclared as different kind of symbol|invalid type .* for default argument to|wrong type argument to unary exclamation mark|duplicate explicit instantiation of|incompatible types in assignment|assuming . on overloaded member function|call of overloaded .* is ambiguous|declaration of C function .* conflicts with|initialization of non-const reference type|using typedef-name .* after|[0-9]: implicit declaration of function|[0-9]: size of array .* is too large|fixed or forbidden register .* for class)' $1; then |