]> git.pld-linux.org Git - projects/pld-builder.new.git/commitdiff
- still do use mailer.py (fallback to without) to get proper mail headers set
authorElan Ruusamäe <glen@pld-linux.org>
Mon, 16 Feb 2009 11:21:57 +0000 (11:21 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    PLD_Builder/wrap.py -> 1.9

PLD_Builder/wrap.py

index 3bfe5cbca25a6d36a67efc9e29bda21dfe0b1236..51a00c93bb142d6c68e6946ad1d59f732fe34a8e 100644 (file)
@@ -9,22 +9,18 @@ import time
 
 # this module, as it deals with internal error handling shouldn't
 # import anything beside status
-
 import status
 
-def wrap(main):
-    try:
-        main()
-    except:
-        exctype, value = sys.exc_info()[:2]
-        if exctype == SystemExit:
-            sys.exit(value)
-        s = StringIO.StringIO()
-        traceback.print_exc(file = s, limit = 20)
-        log.alert("fatal python exception")
-        log.alert(s.getvalue())
-        log.alert("during: %s" % status.get())
-        
+try:
+    import mailer
+    def sendmail(trace, status):
+        m = mailer.Message()
+        m.set_headers(to = status.admin, cc = ("%s, %s" % status.email, status.builder_list), subject = "fatal python exception")
+        m.write("%s\n" % trace)
+        m.write("during: %s\n" % status)
+        m.send()
+except:
+    def sendmail(trace, status):
         # don't use mailer.py; it safer this way
         f = os.popen("/usr/sbin/sendmail -i -t", "w")
         f.write("""Subject: builder failure
@@ -36,9 +32,25 @@ X-PLD-Builder: fatal error report
 %s
 
 during: %s
-""" % (status.admin, status.email, status.builder_list, 
+""" % (status.admin, status.email, status.builder_list,
              time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()),
-             s.getvalue(), status.get()))
+             trace, status))
         f.close()
 
+def wrap(main):
+    try:
+        main()
+    except:
+        exctype, value = sys.exc_info()[:2]
+        if exctype == SystemExit:
+            sys.exit(value)
+        s = StringIO.StringIO()
+        traceback.print_exc(file = s, limit = 20)
+
+        log.alert("fatal python exception")
+        log.alert(s.getvalue())
+        log.alert("during: %s" % status.get())
+
+        sendmail(s.getvalue(), status.get())
+
         sys.exit(1)
This page took 0.042135 seconds and 4 git commands to generate.