Ensure that the invalid UI error goes to stderr

(Bitbake rev: 76aeea2c23a518046d0b26f1a6fc43287a180a9d)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
This commit is contained in:
Chris Larson 2010-12-13 16:24:14 -07:00 committed by Richard Purdie
parent e05d6fa927
commit 9260c08e1d
1 changed files with 20 additions and 11 deletions

View File

@ -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()