chiark / gitweb /
Ensure end of buildserver output is always captured
authorCiaran Gultnieks <ciaran@ciarang.com>
Wed, 13 Nov 2013 18:45:37 +0000 (18:45 +0000)
committerCiaran Gultnieks <ciaran@ciarang.com>
Wed, 13 Nov 2013 18:45:37 +0000 (18:45 +0000)
fdroidserver/build.py

index 330c75c9e5d350715624a4c53861b7731c676143..24cb2f5c568e8ff8fcb47883e5a595f41d697677 100644 (file)
@@ -332,10 +332,16 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
                 error += chan.recv_stderr(1024)
         print "...getting exit status"
         returncode = chan.recv_exit_status()
-        while chan.recv_ready():
-            output += chan.recv(1024)
-        while chan.recv_stderr_ready():
-            error += chan.recv_stderr(1024)
+        while True:
+            get = chan.recv(1024)
+            if len(get) == 0:
+                break
+            output += get
+        while True:
+            get = chan.recv_stderr(1024)
+            if len(get) == 0:
+                break
+            error += get
         if returncode != 0:
             raise BuildException("Build.py failed on server for %s:%s" % (app['id'], thisbuild['version']), output, error)