summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-08-16 20:59:24 -0700
committerZac Medico <zmedico@gentoo.org>2010-08-16 20:59:24 -0700
commit2f508a0f40252ad00b8055d27818647d0d0f5970 (patch)
treec8548961db46750048e3ce29f05c22b41bcf5e82 /pym/_emerge
parentae9b8998cc5255504aad85db7846e843760b56c7 (diff)
downloadportage-2f508a0f40252ad00b8055d27818647d0d0f5970.tar.gz
portage-2f508a0f40252ad00b8055d27818647d0d0f5970.tar.bz2
portage-2f508a0f40252ad00b8055d27818647d0d0f5970.zip
Make spawnebuild() use EbuildPhase to eliminate duplicate code.
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/EbuildPhase.py13
-rw-r--r--pym/_emerge/EbuildProcess.py14
-rw-r--r--pym/_emerge/MiscFunctionsProcess.py4
3 files changed, 20 insertions, 11 deletions
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):
"""