From a4589f44d8da96dc83131910aeb60b5ea62ec40f Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Thu, 12 Aug 2010 05:56:22 -0700 Subject: Factor EBUILD_EXIT_STATUS_FILE code out of AbstractEbuildProcess subclasses and into AbstractEbuildProcess itself. --- pym/_emerge/AbstractEbuildProcess.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'pym/_emerge/AbstractEbuildProcess.py') diff --git a/pym/_emerge/AbstractEbuildProcess.py b/pym/_emerge/AbstractEbuildProcess.py index 302d34403..f4a87f68b 100644 --- a/pym/_emerge/AbstractEbuildProcess.py +++ b/pym/_emerge/AbstractEbuildProcess.py @@ -3,12 +3,16 @@ from _emerge.SpawnProcess import SpawnProcess import portage +portage.proxy.lazyimport.lazyimport(globals(), + 'portage.package.ebuild.doebuild:_doebuild_exit_status_check_and_log' +) from portage import os from portage.util._pty import _create_pty_or_pipe class AbstractEbuildProcess(SpawnProcess): __slots__ = ('settings',) + _phases_without_builddir = ('clean', 'cleanrm', 'depend', 'help',) def _pipe(self, fd_pipes): stdout_pipe = fd_pipes.get(1) @@ -22,3 +26,12 @@ class AbstractEbuildProcess(SpawnProcess): # See Bug #162404. return not ('sesandbox' in self.settings.features \ and self.settings.selinux_enabled()) or os.isatty(slave_fd) + + def _set_returncode(self, wait_retval): + SpawnProcess._set_returncode(self, wait_retval) + phase = self.settings.get("EBUILD_PHASE") + if not phase: + phase = 'other' + if phase not in self._phases_without_builddir: + self.returncode = _doebuild_exit_status_check_and_log( + self.settings, phase, self.returncode) -- cgit v1.2.3-1-g7c22