summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-12-25 05:30:18 +0000
committerZac Medico <zmedico@gentoo.org>2008-12-25 05:30:18 +0000
commit1893bfb768759d75b4b1216b54953075eda7cd36 (patch)
tree832362834019b3bf959f8ebe92501f64b091d617 /pym/_emerge
parent29d6b4b53f85b1857d8a8cb07cd3ed1c39649004 (diff)
downloadportage-1893bfb768759d75b4b1216b54953075eda7cd36.tar.gz
portage-1893bfb768759d75b4b1216b54953075eda7cd36.tar.bz2
portage-1893bfb768759d75b4b1216b54953075eda7cd36.zip
Refactor EbuildMetadataPhase._output_handler() and _set_returncode().
(trunk r12339) svn path=/main/branches/2.1.6/; revision=12340
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/__init__.py29
1 files changed, 13 insertions, 16 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 71ea7ca6d..48bd9bc1f 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -2885,28 +2885,25 @@ class EbuildMetadataPhase(SubProcess):
if event & PollConstants.POLLIN:
self._raw_metadata.append(self._files.ebuild.read())
-
- if not self._raw_metadata[-1] or event & PollConstants.POLLHUP:
- # Split lines here so they can be counted inside _set_returncode().
- self._raw_metadata = "".join(self._raw_metadata).splitlines()
- self._unregister()
- self.wait()
-
- if self.returncode == os.EX_OK:
- metadata = izip(portage.auxdbkeys, self._raw_metadata)
- self.metadata_callback(self.cpv, self.ebuild_path,
- self.repo_path, metadata, self.ebuild_mtime)
+ if not self._raw_metadata[-1]:
+ self._unregister()
+ self.wait()
self._unregister_if_appropriate(event)
return self._registered
def _set_returncode(self, wait_retval):
SubProcess._set_returncode(self, wait_retval)
- if self.returncode == os.EX_OK and \
- len(portage.auxdbkeys) != len(self._raw_metadata):
- # Don't trust bash's returncode if the
- # number of lines is incorrect.
- self.returncode = 1
+ if self.returncode == os.EX_OK:
+ metadata_lines = "".join(self._raw_metadata).splitlines()
+ if len(portage.auxdbkeys) != len(metadata_lines):
+ # Don't trust bash's returncode if the
+ # number of lines is incorrect.
+ self.returncode = 1
+ else:
+ metadata = izip(portage.auxdbkeys, metadata_lines)
+ self.metadata_callback(self.cpv, self.ebuild_path,
+ self.repo_path, metadata, self.ebuild_mtime)
class EbuildProcess(SpawnProcess):