1 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
8 from config import config
14 self.body = StringIO.StringIO()
15 self.set_std_headers()
17 def set_header(self, n, v):
20 def set_headers(self, to = None, cc = None, subject = None):
22 self.set_header("To", to)
24 self.set_header("Cc", cc)
26 self.set_header("Subject", subject)
28 def write_line(self, l):
29 self.body.write("%s\n" % l)
34 def append_log(self, log):
40 for l in f.xreadlines():
44 for l in f.xreadlines():
45 if line < 100 or line > line_cnt - 100:
47 if line == line_cnt - 100:
48 self.body.write("\n\n[...]\n\n")
51 util.sendfile(open(log), self.body)
53 def set_std_headers(self):
54 self.headers["Date"] = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime())
55 self.headers["Message-ID"] = "<pld-builder.%f.%d@%s>" \
56 % (time.time(), os.getpid(), os.uname()[1])
57 self.headers["From"] = "PLD %s builder <%s>" \
58 % (config.builder, config.email)
59 self.headers["X-PLD-Builder"] = config.builder
61 def write_to(self, f):
62 for k, v in self.headers.items():
63 f.write("%s: %s\n" % (k, v))
66 util.sendfile(self.body, f)
69 send_sendmail = "/usr/sbin/sendmail -t -f %s" % config.admin_email
70 f = os.popen(send_sendmail, "w")