bitbake: bin/bitbake: Ensure early errors are shown to the user
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 7 May 2013 08:23:47 +0000 (08:23 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 9 May 2013 13:06:52 +0000 (14:06 +0100)
Currently if errors occur early in the init process, the errors may
not be shown to the user. This change ensures that if a failure does
occur, the messages are flushed from the queue and shown to the user.

(Bitbake rev: fda84c4285e0bc31c249b6dd5464aeb6ad622a9a)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/bin/bitbake

index 0e69207..e05ff5b 100755 (executable)
@@ -240,11 +240,22 @@ Default BBFILES are the .bb files in the current directory.""")
 
     idle = server.getServerIdleCB()
 
-    cooker = bb.cooker.BBCooker(configuration, idle, initialenv)
-    cooker.parseCommandLine()
-
-    server.addcooker(cooker)
-    server.saveConnectionDetails()
+    try:
+        cooker = bb.cooker.BBCooker(configuration, idle, initialenv)
+        cooker.parseCommandLine()
+
+        server.addcooker(cooker)
+        server.saveConnectionDetails()
+    except:
+        while True:
+            import queue
+            try:
+                event = server.event_queue.get(block=False)
+            except (queue.Empty, IOError):
+                break
+            if isinstance(event, logging.LogRecord):
+                logger.handle(event)
+        raise
     server.detach()
 
     # Should no longer need to ever reference cooker