summaryrefslogtreecommitdiffstats
path: root/pym/portage/elog/mod_echo.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-06-22 23:11:38 +0000
committerZac Medico <zmedico@gentoo.org>2007-06-22 23:11:38 +0000
commita382630c4c4414597190da450970f4885a632b62 (patch)
tree13ff560b1a9ec85d49b940668bf5bdd5b1aaf403 /pym/portage/elog/mod_echo.py
parentf2beaa1b01fbfc9ad8eea94df22ca92947446d01 (diff)
downloadportage-a382630c4c4414597190da450970f4885a632b62.tar.gz
portage-a382630c4c4414597190da450970f4885a632b62.tar.bz2
portage-a382630c4c4414597190da450970f4885a632b62.zip
Make elog finalize() handling safe for PORTAGE_CONFIGROOT.
svn path=/main/trunk/; revision=6955
Diffstat (limited to 'pym/portage/elog/mod_echo.py')
-rw-r--r--pym/portage/elog/mod_echo.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/pym/portage/elog/mod_echo.py b/pym/portage/elog/mod_echo.py
index 6dcc65233..308c8efcc 100644
--- a/pym/portage/elog/mod_echo.py
+++ b/pym/portage/elog/mod_echo.py
@@ -8,18 +8,27 @@ from portage.const import EBUILD_PHASES
_items = {}
def process(mysettings, key, logentries, fulltext):
- _items[key] = logentries
+ global _items
+ config_root = mysettings["PORTAGE_CONFIGROOT"]
+ mysettings, items = _items.setdefault(config_root, (mysettings, {}))
+ items[key] = logentries
-def finalize(mysettings):
+def finalize():
+ global _items
+ for mysettings, items in _items.itervalues():
+ _finalize(mysettings, items)
+ _items.clear()
+
+def _finalize(mysettings, items):
printer = EOutput()
- for key in _items:
+ for key, logentries in items.iteritems():
print
printer.einfo("Messages for package %s:" % key)
print
for phase in EBUILD_PHASES:
- if not phase in _items[key]:
+ if phase not in logentries:
continue
- for msgtype, msgcontent in _items[key][phase]:
+ for msgtype, msgcontent in logentries[phase]:
fmap = {"INFO": printer.einfo,
"WARN": printer.ewarn,
"ERROR": printer.eerror,