Index: pym/_emerge/MergeListItem.py |
diff --git a/pym/_emerge/MergeListItem.py b/pym/_emerge/MergeListItem.py |
index e7856ccfc1e5f3afbc57663852eacd4eb217dd9b..64f5a86ef306a19f8c2fecb54d3f2e9aa3252e93 100644 |
--- a/pym/_emerge/MergeListItem.py |
+++ b/pym/_emerge/MergeListItem.py |
@@ -111,7 +111,7 @@ class MergeListItem(CompositeTask): |
self._install_task.wait() |
return self.returncode |
- def merge(self): |
+ def merge(self, exit_handler): |
pkg = self.pkg |
build_opts = self.build_opts |
@@ -135,15 +135,14 @@ class MergeListItem(CompositeTask): |
world_atom=world_atom) |
uninstall.start() |
- retval = uninstall.wait() |
- if retval != os.EX_OK: |
- return retval |
- return os.EX_OK |
- |
- if build_opts.fetchonly or \ |
+ self.returncode = uninstall.wait() |
+ else: |
+ self.returncode = os.EX_OK |
+ exit_handler(self) |
+ elif build_opts.fetchonly or \ |
build_opts.buildpkgonly: |
- return self.returncode |
- |
- retval = self._install_task.install() |
- return retval |
+ exit_handler(self) |
+ else: |
+ self._current_task = self._install_task |
+ self._install_task.install(exit_handler) |