sshpeer: extract the forward output logic
authorPierre-Yves David <pierre-yves.david@fb.com>
Mon, 18 May 2015 23:19:11 -0500
changeset 25244 cf90764f40a4
parent 25243 d65243d28749
child 25245 504ef9c49f4a
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.
mercurial/sshpeer.py
--- 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()