# PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules
# included in portage are (empty means logging is disabled):
+# echo (display messages again when emerge exits)
# save (saves one log per package in $PORT_LOGDIR/elog,
# /var/log/portage/elog if $PORT_LOGDIR is unset)
# custom (passes all messages to $PORTAGE_ELOG_COMMAND)
--- /dev/null
+# elog_modules/mod_echo.py - elog dispatch module
+# Copyright 2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+from output import EOutput
+from portage_const import EBUILD_PHASES
+
+_items = {}
+def process(mysettings, key, logentries, fulltext):
+ _items[key] = logentries
+
+def finalize(mysettings):
+ printer = EOutput()
+ for key in _items.keys():
+ print
+ printer.einfo("Messages for package %s:" % key)
+ print
+ for phase in EBUILD_PHASES:
+ if not phase in _items[key]:
+ continue
+ for msgtype, msgcontent in _items[key][phase]:
+ fmap = {"INFO": printer.einfo,
+ "WARN": printer.ewarn,
+ "ERROR": printer.eerror,
+ "LOG": printer.einfo,
+ "QA": printer.ewarn}
+ for line in msgcontent:
+ fmap[msgtype](line.strip("\n"))
+ return