diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-07-17 23:53:49 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-07-17 23:53:49 +0000 |
commit | f88ccbcd7f42c880e6f2c741d114ba049064f904 (patch) | |
tree | 15000ccfaf86246e7b9e9d82b5f860a63ca4481f /pym/portage/elog | |
parent | When dblink is looping over files for merge/unmerge, temporarily yield to the (diff) | |
download | portage-f88ccbcd7f42c880e6f2c741d114ba049064f904.tar.gz portage-f88ccbcd7f42c880e6f2c741d114ba049064f904.tar.bz2 portage-f88ccbcd7f42c880e6f2c741d114ba049064f904.zip |
Redirect dblink elog messages from stdout to the log file when in background
mode. This is implemented by adding a new "out" parameter to the
portage.elog.e* functions, which can be used to send output to an arbitary
file instead of stdout.
svn path=/main/trunk/; revision=11117
Diffstat (limited to 'pym/portage/elog')
-rw-r--r-- | pym/portage/elog/messages.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/pym/portage/elog/messages.py b/pym/portage/elog/messages.py index 36116cc82..de736664c 100644 --- a/pym/portage/elog/messages.py +++ b/pym/portage/elog/messages.py @@ -8,6 +8,7 @@ from portage.const import EBUILD_PHASES from portage.util import writemsg import os +import sys def collect_ebuild_messages(path): """ Collect elog messages generated by the bash logging function stored @@ -66,7 +67,7 @@ def collect_ebuild_messages(path): return logentries _msgbuffer = {} -def _elog_base(level, msg, phase="other", key=None, color=None): +def _elog_base(level, msg, phase="other", key=None, color=None, out=None): """ Backend for the other messaging functions, should not be called directly. """ @@ -75,7 +76,14 @@ def _elog_base(level, msg, phase="other", key=None, color=None): if color == None: color = "GOOD" - print colorize(color, " * ")+msg + + formatted_msg = colorize(color, " * ") + msg + "\n" + + if out is None: + sys.stdout.write(formatted_msg) + else: + out.write(formatted_msg) + if key not in _msgbuffer: _msgbuffer[key] = {} if phase not in _msgbuffer[key]: @@ -108,11 +116,11 @@ _functions = { "einfo": ("INFO", "GOOD"), } def _make_msgfunction(level, color): - def _elog(msg, phase="other", key=None): + def _elog(msg, phase="other", key=None, out=None): """ Display and log a message assigned to the given key/cpv (or unassigned if no key is given). """ - _elog_base(level, msg, phase=phase, key=key, color=color) + _elog_base(level, msg, phase=phase, key=key, color=color, out=out) return _elog import sys |