6 from config import config
8 def sendfile(src, dst):
17 self.body = StringIO.StringIO()
18 self.set_std_headers()
20 def set_header(self, n, v):
23 def set_headers(self, to = None, cc = None, subject = None):
25 self.set_header("To", to)
27 self.set_header("Cc", cc)
29 self.set_header("Subject", subject)
31 def write_line(self, l):
32 self.body.write("%s\n" % l)
37 def append_log(self, log):
43 for l in f.xreadlines():
47 for l in f.xreadlines():
48 if line < 100 or line > line_cnt - 100:
50 if line == line_cnt - 100:
51 self.body.write("\n\n[...]\n\n")
54 sendfile(open(log), self.body)
56 def set_std_headers(self):
57 self.headers["Date"] = time.asctime()
58 self.headers["Message-ID"] = "<pld-builder.%d.%d@%s>" \
59 % (time.time(), os.getpid(), os.uname()[1])
60 self.headers["From"] = "PLD %s builder <%s>" \
61 % (config.builder, config.email)
62 self.headers["X-PLD-Builder"] = config.builder
64 def write_to(self, f):
65 for k, v in self.headers.items():
66 f.write("%s: %s\n" % (k, v))
69 sendfile(self.body, f)
73 self.write_to(sys.stdout)