+DATE=$(date +'%Y.%m.%d')
+
+# temporary - wrap a quick summary of suspicious stuff
+# this is to focus on installation that go wrong
+# use with care, a *lot* of other things can go bad as well
+function summary () {
+ from=$1; shift
+ echo "******************** BEG SUMMARY"
+ python - $from <<EOF
+#!/usr/bin/env python
+# read a full log and tries to extract the interesting stuff
+
+import sys,re
+m_show_line=re.compile(".* BEG (RPM|VSERVER).*|.*'boot'.*|\* .*|.*is not installed.*|.*PROPFIND.*|.*Starting.*:runtest.*")
+m_installing_any=re.compile('\r (Installing:[^\]]*]) ')
+m_installing_err=re.compile('\r (Installing:[^\]]*])(..+)')
+m_installing_end=re.compile('Installed:.*')
+m_installing_doc1=re.compile("(.*)install-info: No such file or directory for /usr/share/info/\S+(.*)")
+m_installing_doc2=re.compile("(.*)grep: /usr/share/info/dir: No such file or directory(.*)")
+
+def summary (filename):
+
+ try:
+ if filename=="-":
+ filename="stdin"
+ f=sys.stdin
+ else:
+ f=open(filename)
+ echo=False
+ for line in f.xreadlines():
+ # first off : discard warnings related to doc
+ if m_installing_doc1.match(line):
+ (begin,end)=m_installing_doc1.match(line).groups()
+ line=begin+end
+ if m_installing_doc2.match(line):
+ (begin,end)=m_installing_doc2.match(line).groups()
+ line=begin+end
+ # unconditionnally show these lines
+ if m_show_line.match(line):
+ print '>>>',line,
+ # an 'installing' line with messages afterwards : needs to be echoed
+ elif m_installing_err.match(line):
+ (installing,error)=m_installing_err.match(line).groups()
+ print '>>>',installing
+ print '>>>',error
+ echo=True
+ # closing an 'installing' section
+ elif m_installing_end.match(line):
+ echo=False
+ # any 'installing' line
+ elif m_installing_any.match(line):
+ if echo:
+ installing=m_installing_any.match(line).group(1)
+ print '>>>',installing
+ echo=False
+ # print lines when echo is true
+ else:
+ if echo: print '>>>',line,
+ f.close()
+ except:
+ print 'Failed to analyze',filename
+
+for arg in sys.argv[1:]:
+ summary(arg)
+EOF
+ echo "******************** END SUMMARY"
+}
+