From 9260c08e1d4d2cf62639a77e8ca28ef0f30ab4be Mon Sep 17 00:00:00 2001 From: Chris Larson Date: Mon, 13 Dec 2010 16:24:14 -0700 Subject: [PATCH] Ensure that the invalid UI error goes to stderr (Bitbake rev: 76aeea2c23a518046d0b26f1a6fc43287a180a9d) Signed-off-by: Chris Larson Signed-off-by: Richard Purdie --- bitbake/bin/bitbake | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index 6458d987c0..61bd0194d6 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake @@ -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()