1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
#! /bin/csh -f
if ($#argv > 0) then
if ("$1" == "-help") then
echo "$0 file [ -rc ]"
echo "Extracts error messages from a install log file. This script"
echo "is under construction and should not be counted on to be"
echo "perfect. "
echo " "
echo "if -rc is set, there is no output. Instead, the return code "
echo "is set to 0 if no errors were found, and to the number of "
echo "errors otherwise. This may be used by scripts to determine"
echo "if the install completed correctly."
echo " "
echo "Also extracts test suite results (examples/test)."
exit 1
endif
endif
#
# rs6000 error strings:
# "filename", line 000.00: 1506-000 (S/W/E) string.
# Look for `"' as first character
# ar: 0000-000 string
# Look for "ar:" as leading string
# Look for "xlc:" as leading string
# Look for "digits- ERROR: (^[-0-9 ]*ERROR:)
#
# sun4 error strings:
# "filename", line 000: string
# Look for `"' as first character
# Also,
# Does filename: ddd: string: error
# for cpp errors. Look for "string:"
#
# Intel error strings:
# PGC-...
# Look for `PGC-' as leading string
#
# Convex (c2mp) error strings:
# cc: ...
#
# Cray error strings:
# cc-... cc: ...\n<message>\n
# cft77-.. cf77: ...\n<message>\n
#
# IRIX error strings:
# accom: ...
# /usr..../...:
#
# 386BSD:
# cc: ...
# Error on line ... of ...:
# filename:linenumber:
#
# LINUX:
# make[*]: *** ....
# Exit status ....
# <arb text>: <arb text>
#
# Things to exclude:
# Note that X11R5 definitions do NOT include prototypes (!); some R6 versions
# have the same problems. Reject strings containing
# /X11R5/.../Xlib.h: ... function declaration ... a prototype
#
set ISRC = 0
set RC = 0
set LARCH = ""
if ( -e bin/tarch ) set LARCH = `bin/tarch`
if ($LARCH == cray) then
if ($ISRC) then
set RC = `egrep '^cc-[0-9]* cc:|^Make:|^ cft77-[0-9]* cf77:' $1 | wc -l`
else
egrep '^cc-[0-9]* cc:|^Make:|^ cft77-[0-9]* cf77:' $1
endif
exit($RC)
endif
if ($LARCH == "386BSD") then
# was ^[a-zA-Z0-9]*\.c: [1-9]
if ($ISRC) then
set RC = `egrep '^"|^Error on line|^ar:|^mv:|^ld:|^Archive:|^make:|^xlc:|^PGC\-|^[a-zA-Z0-9_][a-zA-Z0-9_]*\.c:|^cc:' $1 | \
egrep -v '/X11R5/.*/Xlib.h:.*function declaration.*a prototype' \
| wc -l`
else
egrep '^"|^Error on line|^ar:|^mv:|^ld:|^Archive:|^make:|^xlc:|^PGC\-|^[a-zA-Z0-9_][a-zA-Z0-9]*\.c:|^cc:' $1 | egrep -v '/X11R5/.*/Xlib.h:.*function declaration.*a prototype'
endif
exit($RC)
endif
#
if ($LARCH == "LINUX") then
# LINUX has very hard to detect error messages.
if ($ISRC) then
# was ^[a-zA-Z0-9]*\.c: [1-9]
set RC = `egrep '^"|^\.|^\*\#|^/usr.*:|^Error|^ar:|^mv:|^ld:|^Archive:|^make:|^make\[|^[a-zA-Z0-9_]*\.c:|^[a-zA-Z0-9_][a-zA-Z0-9_]*\.o.*:|^cc:|^f77:' $1 | wc -l`
set RC1 = `egrep 'No space left|^[-0-9 ]*ERROR:|Connection timed' $1 | \
wc -l`
if ($RC1 != 0) set RC = $RC1
else
egrep '^"|^\.|^\*\#|^/usr.*:|^Error|^ar:|^mv:|^ld:|^Archive:|^make:|^make\[|^[a-zA-Z0-9_]*\.c:|^[a-zA-Z0-9_][a-zA-Z0-9_]*\.o.*:|^cc:|^f77:|^[-0-9 ]*ERROR:' $1
egrep 'No space left|Connection timed' $1
endif
exit($RC)
endif
#
# This is the fallthrough case
#
if ($ISRC) then
# was ^[a-zA-Z0-9_]*\.c: [1-9]
set RC = `egrep '^"|^\.|^\*\#|^accom:|^/usr.*:|^Error|^ar:|^mv:|^ld:|^Archive:|^make:|^xlc:|^cfe:|^PGC\-|^[a-zA-Z0-9_][a-zA-Z0-9_]*\.c:|^cc:|^f77:' $1 | \
egrep -v '/X11R5/.*/Xlib.h:.*function declaration.*a prototype' \
| wc -l`
set RC1 = `egrep 'No space left|^[-0-9 ]*ERROR:|Connection timed' $1 | \
wc -l`
if ($RC1 != 0) set RC = $RC1
else
egrep '^"|^\.|^\*\#|^accom:|^/usr.*:|^Error|^ar:|^mv:|^ld:|^Archive:|^make:|^xlc:|^cfe:|^PGC\-|^[a-zA-Z0-9_][a-zA-Z0-9_]*\.c:|^cc:|^f77:|^[-0-9 ]*ERROR:' $1 | \
egrep -v '/X11R5/.*/Xlib.h:.*function declaration.*a prototype'
egrep 'No space left|Connection timed' $1
endif
#
# Try for test suite
sed -n -e '/from expected output/,/\/bin\/rm/p' $1
exit($RC)
|