From 3e045793c740cbac302c2077cc839f1a64c03bc2 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Tue, 21 Oct 2008 12:39:23 +0100 Subject: bitbake-dev: Dynamically load the UI module. Dynamically load the UI from a module based on the UI name given. We still however maintain a fixed set in here with the set of suggested UIs. --- bitbake-dev/bin/bitbake | 39 ++++++++++++++------------------------- 1 file changed, 14 insertions(+), 25 deletions(-) (limited to 'bitbake-dev') diff --git a/bitbake-dev/bin/bitbake b/bitbake-dev/bin/bitbake index 1f650e2bdc..d85135a117 100755 --- a/bitbake-dev/bin/bitbake +++ b/bitbake-dev/bin/bitbake @@ -123,21 +123,6 @@ Default BBFILES are the .bb files in the current directory.""" ) configuration.pkgs_to_build = [] configuration.pkgs_to_build.extend(args[1:]) - # Work out which UI(s) to use - curseUI = False - depexplorerUI = False - if configuration.ui: - if configuration.ui == "ncurses": - curseUI = True - elif configuration.ui == "knotty" or configuration.ui == "tty" or configuration.ui == "file": - curseUI = False - elif configuration.ui == "depexp": - depexplorerUI = True - else: - print "FATAL: Invalid user interface '%s' specified.\nValid interfaces are 'ncurses', 'depexp' or the default, 'knotty'." % configuration.ui - sys.exit(1) - - cooker = bb.cooker.BBCooker(configuration) # Clear away any spurious environment variables. But don't wipe the @@ -166,18 +151,22 @@ Default BBFILES are the .bb files in the current directory.""" ) eventHandler = uievent.BBUIEventQueue(server) # Launch the UI + if configuration.ui: + ui = configuration.ui + else: + ui = "knotty" + try: - if curseUI: - from bb.ui import ncurses - ncurses.init(server, eventHandler) - elif depexplorerUI: - from bb.ui import depexplorer - depexplorer.init(server, eventHandler) - else: - from bb.ui import knotty - return_value = knotty.init(server, eventHandler) + # 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. + exec "from bb.ui import " + ui + exec ui + ".init(server, eventHandler)" + except ImportError: + print "FATAL: Invalid user interface '%s' specified. " % ui + print "Valid interfaces are 'ncurses', 'depexp' or the default, 'knotty'." except Exception, e: - print "FATAL: Unable to start to '%s' UI: %s" % (configuration.ui, e.message) + print "FATAL: Unable to start to '%s' UI: %s." % (configuration.ui, e.message) finally: # Don't wait for server indefinitely import socket -- cgit v1.2.3-54-g00ecf