1 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
7 if sys.version_info[0] == 2:
10 from io import StringIO
14 # this module, as it deals with internal error handling shouldn't
15 # import anything beside status
22 m.set_headers(to = status.admin, cc = "%s, %s" % (status.email, status.builder_list), subject = "fatal python exception")
23 m.write("%s\n" % trace)
24 m.write("during: %s\n" % status.get())
28 # don't use mailer.py; it safer this way
29 f = os.popen("/usr/sbin/sendmail -i -t", "w")
30 f.write("""Subject: builder failure
34 X-TLD-Builder: fatal error report
39 """ % (status.admin, status.email, status.builder_list,
40 time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()),
48 exctype, value = sys.exc_info()[:2]
49 if exctype == SystemExit:
51 s = StringIO.StringIO()
52 traceback.print_exc(file = s, limit = 20)
54 log.alert("fatal python exception")
55 log.alert(s.getvalue())
56 log.alert("during: %s" % status.get())
58 sendmail(s.getvalue())