From 2f508a0f40252ad00b8055d27818647d0d0f5970 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 16 Aug 2010 20:59:24 -0700 Subject: Make spawnebuild() use EbuildPhase to eliminate duplicate code. --- pym/_emerge/EbuildPhase.py | 13 ++++++++----- pym/_emerge/EbuildProcess.py | 14 +++++++++----- pym/_emerge/MiscFunctionsProcess.py | 4 +++- 3 files changed, 20 insertions(+), 11 deletions(-) (limited to 'pym/_emerge') diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py index 55f50b3db..5680925e4 100644 --- a/pym/_emerge/EbuildPhase.py +++ b/pym/_emerge/EbuildPhase.py @@ -4,11 +4,13 @@ from _emerge.MiscFunctionsProcess import MiscFunctionsProcess from _emerge.EbuildProcess import EbuildProcess from _emerge.CompositeTask import CompositeTask -from portage.package.ebuild.doebuild import _check_build_log, \ - _post_phase_cmds, _post_src_install_chost_fix, \ - _post_src_install_uid_fix from portage.util import writemsg, writemsg_stdout import portage +portage.proxy.lazyimport.lazyimport(globals(), + 'portage.package.ebuild.doebuild:_check_build_log,' + \ + '_post_phase_cmds,_post_src_install_chost_fix,' + \ + '_post_src_install_uid_fix' +) from portage import os from portage import _encodings from portage import _unicode_decode @@ -17,12 +19,13 @@ import codecs class EbuildPhase(CompositeTask): - __slots__ = ("background", "phase", + __slots__ = ("actionmap", "background", "phase", "scheduler", "settings") def _start(self): - ebuild_process = EbuildProcess(background=self.background, + ebuild_process = EbuildProcess(actionmap=self.actionmap, + background=self.background, phase=self.phase, scheduler=self.scheduler, settings=self.settings) diff --git a/pym/_emerge/EbuildProcess.py b/pym/_emerge/EbuildProcess.py index c60c2bda9..84a8d1b61 100644 --- a/pym/_emerge/EbuildProcess.py +++ b/pym/_emerge/EbuildProcess.py @@ -2,16 +2,18 @@ # Distributed under the terms of the GNU General Public License v2 from _emerge.AbstractEbuildProcess import AbstractEbuildProcess +import portage +portage.proxy.lazyimport.lazyimport(globals(), + 'portage.package.ebuild.doebuild:_post_phase_userpriv_perms,' + \ + '_spawn_actionmap,spawn@doebuild_spawn' +) from portage import _shell_quote from portage import os from portage.const import EBUILD_SH_BINARY -from portage.package.ebuild.doebuild import _post_phase_userpriv_perms -from portage.package.ebuild.doebuild import spawn as doebuild_spawn -from portage.package.ebuild.doebuild import _spawn_actionmap class EbuildProcess(AbstractEbuildProcess): - __slots__ = () + __slots__ = ('actionmap',) def _start(self): # Don't open the log file during the clean phase since the @@ -23,7 +25,9 @@ class EbuildProcess(AbstractEbuildProcess): def _spawn(self, args, **kwargs): self.settings["EBUILD_PHASE"] = self.phase - actionmap = _spawn_actionmap(self.settings) + actionmap = self.actionmap + if actionmap is None: + actionmap = _spawn_actionmap(self.settings) if self.phase in actionmap: kwargs.update(actionmap[self.phase]["args"]) cmd = actionmap[self.phase]["cmd"] % self.phase diff --git a/pym/_emerge/MiscFunctionsProcess.py b/pym/_emerge/MiscFunctionsProcess.py index 270da4277..d7119037e 100644 --- a/pym/_emerge/MiscFunctionsProcess.py +++ b/pym/_emerge/MiscFunctionsProcess.py @@ -3,8 +3,10 @@ from _emerge.AbstractEbuildProcess import AbstractEbuildProcess import portage +portage.proxy.lazyimport.lazyimport(globals(), + 'portage.package.ebuild.doebuild:spawn' +) from portage import os -from portage.package.ebuild.doebuild import spawn class MiscFunctionsProcess(AbstractEbuildProcess): """ -- cgit v1.2.3-1-g7c22