]> code.ossystems Code Review - openembedded-core.git/commitdiff
Ensure that the invalid UI error goes to stderr
authorChris Larson <chris_larson@mentor.com>
Mon, 13 Dec 2010 23:24:14 +0000 (16:24 -0700)
committerRichard Purdie <rpurdie@linux.intel.com>
Tue, 4 Jan 2011 14:46:50 +0000 (14:46 +0000)
(Bitbake rev: 76aeea2c23a518046d0b26f1a6fc43287a180a9d)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/bin/bitbake

index 6458d987c0ae1737f2c33d8973703098af2c88dd..61bd0194d6109d3b669726fe8e9a0595c7bfddca 100755 (executable)
@@ -57,6 +57,23 @@ class BBConfiguration(object):
         self.pkgs_to_build = []
 
 
+def get_ui(config):
+    if config.ui:
+        interface = config.ui
+    else:
+        interface = 'knotty'
+
+    try:
+        # Dynamically load the UI based on the ui name. Although we
+        # suggest a fixed set this allows you to have flexibility in which
+        # ones are available.
+        module = __import__("bb.ui", fromlist = [interface])
+        return getattr(module, interface).main
+    except AttributeError:
+        sys.exit("FATAL: Invalid user interface '%s' specified.\n"
+                 "Valid interfaces: ncurses, depexp, knotty [default]." % interface)
+
+
 # Display bitbake/OE warnings via the BitBake.Warnings logger, ignoring others"""
 warnlog = logging.getLogger("BitBake.Warnings")
 _warnings_showwarning = warnings.showwarning
@@ -153,6 +170,8 @@ Default BBFILES are the .bb files in the current directory.""")
     configuration.pkgs_to_build.extend(args[1:])
     configuration.initial_path = os.environ['PATH']
 
+    ui_main = get_ui(configuration)
+
     loghandler = event.LogHandler()
     logger.addHandler(loghandler)
 
@@ -191,17 +210,7 @@ Default BBFILES are the .bb files in the current directory.""")
         ui = "knotty"
 
     try:
-        try:
-            # Dynamically load the UI based on the ui name. Although we
-            # suggest a fixed set this allows you to have flexibility in which
-            # ones are available.
-            module = __import__("bb.ui", fromlist = [ui])
-            ui_main = getattr(module, ui).main
-        except AttributeError:
-            print("FATAL: Invalid user interface '%s' specified. " % ui)
-            print("Valid interfaces are 'ncurses', 'depexp' or the default, 'knotty'.")
-        else:
-            return server.BitbakeUILauch().launch(serverinfo, ui_main, server_connection.connection, server_connection.events)
+        return server.BitbakeUILauch().launch(serverinfo, ui_main, server_connection.connection, server_connection.events)
     finally:
         server_connection.terminate()