summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-10-12 00:46:59 +0000
committerZac Medico <zmedico@gentoo.org>2008-10-12 00:46:59 +0000
commit0df0405f8f963f38a9e048dcfdd200a389ce32a3 (patch)
tree7851f87ee5808a119062faa4e20ad752bfbd88b0 /pym/_emerge
parent0beb5745eab68662abbfd2764d20d0e7e8b5e86a (diff)
downloadportage-0df0405f8f963f38a9e048dcfdd200a389ce32a3.tar.gz
portage-0df0405f8f963f38a9e048dcfdd200a389ce32a3.tar.bz2
portage-0df0405f8f963f38a9e048dcfdd200a389ce32a3.zip
Buge #241100 - Make EbuildFetcher use a pty when appropriate, so that fetcher
progress bars, like wget has, will work properly. svn path=/main/trunk/; revision=11680
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/__init__.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 7e29d9eea..a392c2d71 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -2279,6 +2279,18 @@ class EbuildFetcher(SpawnProcess):
self.env = fetch_env
SpawnProcess._start(self)
+ def _pipe(self, fd_pipes):
+ """When appropriate, use a pty so that fetcher progress bars,
+ like wget has, will work properly."""
+ if self.prefetch or self.background or not sys.stdout.isatty():
+ # When the output only goes to a log file,
+ # there's no point in creating a pty.
+ return os.pipe()
+ stdout_pipe = fd_pipes.get(1)
+ got_pty, master_fd, slave_fd = \
+ portage._create_pty_or_pipe(copy_term_size=stdout_pipe)
+ return (master_fd, slave_fd)
+
def _clean_builddir(self):
"""Uses shutil.rmtree() rather than spawning a 'clean' phase. Disabled
by keepwork or keeptemp in FEATURES."""