diff options
Diffstat (limited to 'pym/portage/elog/__init__.py')
-rw-r--r-- | pym/portage/elog/__init__.py | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/pym/portage/elog/__init__.py b/pym/portage/elog/__init__.py index cbe9f47fa..ef040faa9 100644 --- a/pym/portage/elog/__init__.py +++ b/pym/portage/elog/__init__.py @@ -41,7 +41,8 @@ def _combine_logentries(logentries): return rValue _elog_atexit_handlers = [] -def elog_process(cpv, mysettings): +_preserve_logentries = {} +def elog_process(cpv, mysettings, phasefilter=None): ebuild_logentries = collect_ebuild_messages(os.path.join(mysettings["T"], "logging")) all_logentries = collect_messages() if all_logentries.has_key(cpv): @@ -49,8 +50,18 @@ def elog_process(cpv, mysettings): else: all_logentries[cpv] = ebuild_logentries - my_elog_classes = set(mysettings.get("PORTAGE_ELOG_CLASSES", "").split()) + for key in _preserve_logentries.keys(): + if all_logentries.has_key(key): + all_logentries[key] = _merge_logentries(_preserve_logentries[key], all_logentries[key]) + else: + all_logentries[key] = _preserve_logentries[key] + del _preserve_logentries[key] + + if phasefilter != None: + for key in all_logentries: + all_logentries[key], _preserve_logentries[key] = phasefilter(all_logentries[key]) + my_elog_classes = set(mysettings.get("PORTAGE_ELOG_CLASSES", "").split()) for key in all_logentries: default_logentries = filter_loglevels(all_logentries[key], my_elog_classes) |