From 187df8a3beaffb09948799f5630f5cceeaeb95c5 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 18 Aug 2010 17:08:59 -0700 Subject: Move the code from _prepare_env_file() to a new BinpkgEnvExtractor class. --- pym/_emerge/EbuildPhase.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'pym/_emerge/EbuildPhase.py') diff --git a/pym/_emerge/EbuildPhase.py b/pym/_emerge/EbuildPhase.py index 5680925e4..5f52b4292 100644 --- a/pym/_emerge/EbuildPhase.py +++ b/pym/_emerge/EbuildPhase.py @@ -1,6 +1,7 @@ -# Copyright 1999-2009 Gentoo Foundation +# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 +from _emerge.BinpkgEnvExtractor import BinpkgEnvExtractor from _emerge.MiscFunctionsProcess import MiscFunctionsProcess from _emerge.EbuildProcess import EbuildProcess from _emerge.CompositeTask import CompositeTask @@ -24,6 +25,27 @@ class EbuildPhase(CompositeTask): def _start(self): + if self.phase == 'prerm': + env_extractor = BinpkgEnvExtractor(background=self.background, + scheduler=self.scheduler, settings=self.settings) + if env_extractor.saved_env_exists(): + self._start_task(env_extractor, self._env_extractor_exit) + return + # If the environment.bz2 doesn't exist, then ebuild.sh will + # source the ebuild as a fallback. + + self._start_ebuild() + + def _env_extractor_exit(self, env_extractor): + if self._default_exit(env_extractor) != os.EX_OK: + self._unlock_builddir() + self.wait() + return + + self._start_ebuild() + + def _start_ebuild(self): + ebuild_process = EbuildProcess(actionmap=self.actionmap, background=self.background, phase=self.phase, scheduler=self.scheduler, -- cgit v1.2.3-1-g7c22