aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-07-17 23:53:49 +0000
committerZac Medico <zmedico@gentoo.org>2008-07-17 23:53:49 +0000
commitf88ccbcd7f42c880e6f2c741d114ba049064f904 (patch)
tree15000ccfaf86246e7b9e9d82b5f860a63ca4481f /pym/portage/elog
parentWhen dblink is looping over files for merge/unmerge, temporarily yield to the (diff)
downloadportage-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.py16
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