From: Ciaran Gultnieks Date: Wed, 13 Nov 2013 18:45:37 +0000 (+0000) Subject: Ensure end of buildserver output is always captured X-Git-Tag: 0.1~190 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=cd8bd62e0b52bbd5d99b67bfafad2765b6d6b6ec;p=fdroidserver.git Ensure end of buildserver output is always captured --- diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 330c75c9..24cb2f5c 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -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)