diff options
Diffstat (limited to 'pym/elog_modules/mod_mail_summary.py')
-rw-r--r-- | pym/elog_modules/mod_mail_summary.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pym/elog_modules/mod_mail_summary.py b/pym/elog_modules/mod_mail_summary.py new file mode 100644 index 000000000..53628b920 --- /dev/null +++ b/pym/elog_modules/mod_mail_summary.py @@ -0,0 +1,39 @@ +# portage.py -- core Portage functionality +# Copyright 1998-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id: mod_mail.py 3484 2006-06-10 22:38:44Z genone $ + +import portage_mail, socket, os, time +from email.MIMEText import MIMEText as TextMessage + +_items = {} +def process(mysettings, cpv, logentries, fulltext): + header = ">>> Messages generated for package %s by process %d on %s:\n\n" % \ + (cpv, os.getpid(), time.strftime("%Y%m%d-%H%M%S", time.gmtime(time.time()))) + _items[cpv] = header + fulltext + +def finalize(mysettings): + if len(_items) == 0: + return + elif len(_items) == 1: + count = "one package" + else: + count = "multiple packages" + if mysettings.has_key("PORTAGE_ELOG_MAILURI"): + myrecipient = mysettings["PORTAGE_ELOG_MAILURI"].split()[0] + else: + myrecipient = "root@localhost" + + myfrom = mysettings["PORTAGE_ELOG_MAILFROM"] + mysubject = mysettings["PORTAGE_ELOG_MAILSUBJECT"] + mysubject = mysubject.replace("${PACKAGE}", count) + mysubject = mysubject.replace("${HOST}", socket.getfqdn()) + + mybody = "elog messages for the following packages generated by process %d on host %s:\n" % (count, os.getpid(), socket.getfqdn()) + for cpv in _items.keys(): + mybody += "- %s\n" % cpv + + mymessage = portage_mail.create_message(myfrom, myrecipient, mysubject, mybody, attachments=_items.values()) + portage_mail.send_mail(mysettings, mymessage) + + return |