diff options
Diffstat (limited to 'pym/_emerge/MergeListItem.py')
-rw-r--r-- | pym/_emerge/MergeListItem.py | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/pym/_emerge/MergeListItem.py b/pym/_emerge/MergeListItem.py index 5170de1d5..124db1a18 100644 --- a/pym/_emerge/MergeListItem.py +++ b/pym/_emerge/MergeListItem.py @@ -4,6 +4,7 @@ from portage import os from portage.output import colorize +from _emerge.AsynchronousTask import AsynchronousTask from _emerge.Binpkg import Binpkg from _emerge.CompositeTask import CompositeTask from _emerge.EbuildBuild import EbuildBuild @@ -111,15 +112,11 @@ class MergeListItem(CompositeTask): self._install_task.wait() return self.returncode - def merge(self, exit_handler): + def create_install_task(self): pkg = self.pkg build_opts = self.build_opts - find_blockers = self.find_blockers - logger = self.logger mtimedb = self.mtimedb - pkg_count = self.pkg_count - prefetcher = self.prefetcher scheduler = self.scheduler settings = self.settings world_atom = self.world_atom @@ -129,20 +126,18 @@ class MergeListItem(CompositeTask): if not (build_opts.buildpkgonly or \ build_opts.fetchonly or build_opts.pretend): - uninstall = PackageUninstall(background=self.background, + task = PackageUninstall(background=self.background, ldpath_mtimes=ldpath_mtimes, opts=self.emerge_opts, pkg=pkg, scheduler=scheduler, settings=settings, world_atom=world_atom) - uninstall.start() - self.returncode = uninstall.wait() else: - self.returncode = os.EX_OK - exit_handler(self) + task = AsynchronousTask() + elif build_opts.fetchonly or \ build_opts.buildpkgonly: - exit_handler(self) + task = AsynchronousTask() else: - self._current_task = self._install_task - self._install_task.install(exit_handler) + task = self._install_task.create_install_task() + return task |