sshpeer: extract the forward output logic
We are about to make a more aggressive use of this when reading and writing on
the other pipes. We it needs to be reusable.
--- a/mercurial/sshpeer.py Wed May 20 12:33:12 2015 -0500
+++ b/mercurial/sshpeer.py Mon May 18 23:19:11 2015 -0500
@@ -27,6 +27,15 @@
return s
return "'%s'" % s.replace("'", "'\\''")
+def _forwardoutput(ui, pipe):
+ """display all data currently available on pipe as remote output.
+
+ This is non blocking."""
+ s = util.readpipe(pipe)
+ if s:
+ for l in s.splitlines():
+ ui.status(_("remote: "), l, '\n')
+
class sshpeer(wireproto.wirepeer):
def __init__(self, ui, path, create=False):
self._url = path
@@ -108,10 +117,7 @@
return self._caps
def readerr(self):
- s = util.readpipe(self.pipee)
- if s:
- for l in s.splitlines():
- self.ui.status(_("remote: "), l, '\n')
+ _forwardoutput(self.ui, self.pipee)
def _abort(self, exception):
self.cleanup()