From 0433ac7ff26aca04633a765837051fe2ddcd82de Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 5 Sep 2010 01:19:32 -0700 Subject: Add a more generic AbstractEbuildProcess._elog() method to replace the existing _eerror() method. --- pym/_emerge/AbstractEbuildProcess.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'pym') diff --git a/pym/_emerge/AbstractEbuildProcess.py b/pym/_emerge/AbstractEbuildProcess.py index 28e783e08..39c8c5683 100644 --- a/pym/_emerge/AbstractEbuildProcess.py +++ b/pym/_emerge/AbstractEbuildProcess.py @@ -6,7 +6,7 @@ import textwrap from _emerge.SpawnProcess import SpawnProcess from _emerge.EbuildIpcDaemon import EbuildIpcDaemon import portage -from portage.elog.messages import eerror +from portage.elog import messages as elog_messages from portage.localization import _ from portage.package.ebuild._ipc.ExitCommand import ExitCommand from portage.package.ebuild._ipc.QueryCommand import QueryCommand @@ -198,10 +198,20 @@ class AbstractEbuildProcess(SpawnProcess): self._eerror(textwrap.wrap(msg, 72)) def _eerror(self, lines): + self._elog('eerror', lines) + + def _elog(self, elog_funcname, lines): out = StringIO() phase = self.phase - for line in lines: - eerror(line, phase=phase, key=self.settings.mycpv, out=out) + elog_func = getattr(elog_messages, elog_funcname) + global_havecolor = portage.output.havecolor + try: + portage.output.havecolor = \ + self.settings.get('NOCOLOR', 'false').lower() in ('no', 'false') + for line in lines: + elog_func(line, phase=phase, key=self.settings.mycpv, out=out) + finally: + portage.output.havecolor = global_havecolor msg = _unicode_decode(out.getvalue(), encoding=_encodings['content'], errors='replace') if msg: -- cgit v1.2.3-1-g7c22