aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-15 09:50:41 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-15 09:50:41 +0000
commit34261a71a119e7af9b972238afe7e6532c4a67e3 (patch)
treede5393d9a2caf136cefc2e1c25f0bedda9fcebd3 /pym/portage/elog
parentWhen there is more than one failure, show a summary packages that failed to (diff)
downloadportage-34261a71a119e7af9b972238afe7e6532c4a67e3.tar.gz
portage-34261a71a119e7af9b972238afe7e6532c4a67e3.tar.bz2
portage-34261a71a119e7af9b972238afe7e6532c4a67e3.zip
When packages fail with --jobs > 1 and the "echo" elog module is not enabled,
emulate elog's mod_echo module to show the 'error' level messages, which should include the important die message. This is implemented by adding a private hook inside elog_process() which the scheduler uses to collect error messages. svn path=/main/trunk/; revision=11056
Diffstat (limited to 'pym/portage/elog')
-rw-r--r--pym/portage/elog/__init__.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/pym/portage/elog/__init__.py b/pym/portage/elog/__init__.py
index ea81e8411..50a51e9fd 100644
--- a/pym/portage/elog/__init__.py
+++ b/pym/portage/elog/__init__.py
@@ -53,10 +53,11 @@ def _load_mod(name):
_elog_mod_imports[name] = m
return m
+_emerge_elog_listener = None
_elog_atexit_handlers = []
_preserve_logentries = {}
def elog_process(cpv, mysettings, phasefilter=None):
- global _elog_atexit_handlers, _preserve_logentries
+ global _elog_atexit_handlers, _emerge_elog_listener, _preserve_logentries
logsystems = mysettings.get("PORTAGE_ELOG_SYSTEM","").split()
for s in logsystems:
@@ -100,6 +101,10 @@ def elog_process(cpv, mysettings, phasefilter=None):
default_fulllog = _combine_logentries(default_logentries)
+ if _emerge_elog_listener is not None:
+ _emerge_elog_listener(mysettings, str(key),
+ default_logentries, default_fulllog)
+
# pass the processing to the individual modules
logsystems = mysettings["PORTAGE_ELOG_SYSTEM"].split()
for s in logsystems: