diff options
Diffstat (limited to 'bitbake')
-rwxr-xr-x | bitbake/bin/bitbake | 34 | ||||
-rw-r--r-- | bitbake/lib/bb/ui/toasterui.py | 16 |
2 files changed, 28 insertions, 22 deletions
diff --git a/bitbake/bin/bitbake b/bitbake/bin/bitbake index ab881c537d..f120baccf0 100755 --- a/bitbake/bin/bitbake +++ b/bitbake/bin/bitbake @@ -301,6 +301,9 @@ def main(): if configParams.observe_only and (not configParams.remote_server or configParams.bind): sys.exit("FATAL: '--observe-only' can only be used by UI clients connecting to a server.\n") + if configParams.kill_server and not configParams.remote_server: + sys.exit("FATAL: '--kill-server' can only be used to terminate a remote server") + if "BBDEBUG" in os.environ: level = int(os.environ["BBDEBUG"]) if level > configuration.debug: @@ -332,29 +335,14 @@ def main(): server = servermodule.BitBakeXMLRPCClient(configParams.observe_only) server.saveConnectionDetails(configParams.remote_server) - def _getServerConnection(server, featureset): - try: - server_connection = server.establishConnection(featureset) - except Exception as e: - bb.fatal("Could not connect to server %s: %s" % (configParams.remote_server, str(e))) - return server_connection if not configParams.server_only: - if configParams.status_only: - server_connection = _getServerConnection(server, featureset) - server_connection.terminate() - sys.exit(0) - - # Setup a connection to the server (cooker) try: server_connection = server.establishConnection(featureset) - except: + except Exception as e: if configParams.kill_server: - bb.fatal("Server already offline") - configParams.bind = configParams.remote_server - start_server(servermodule, configParams, configuration, featureset) - bb.event.ui_queue = [] - server_connection = _getServerConnection(server, featureset) + sys.exit(0) + bb.fatal("Could not connect to server %s: %s" % (configParams.remote_server, str(e))) # Restore the environment in case the UI needs it for k in cleanedvars: @@ -362,6 +350,16 @@ def main(): logger.removeHandler(handler) + + if configParams.status_only: + server_connection.terminate() + sys.exit(0) + + if configParams.kill_server: + server_connection.connection.terminateServer() + bb.event.ui_queue = [] + sys.exit(0) + try: return ui_module.main(server_connection.connection, server_connection.events, configParams) finally: diff --git a/bitbake/lib/bb/ui/toasterui.py b/bitbake/lib/bb/ui/toasterui.py index 9a9fe6f2d8..c1696b2a31 100644 --- a/bitbake/lib/bb/ui/toasterui.py +++ b/bitbake/lib/bb/ui/toasterui.py @@ -226,11 +226,19 @@ def main(server, eventHandler, params ): buildinfohelper.update_build_information(event, errors, warnings, taskfailures) + + brbe = server.runCommand(["getVariable", "TOASTER_BRBE"])[0] # we start a new build info - errors = 0 - warnings = 0 - taskfailures = [] - buildinfohelper = BuildInfoHelper(server, build_history_enabled) + if brbe is not None: + print "we are under BuildEnvironment management - after the build, we exit" + server.terminateServer() + else: + print "prepared for new build" + errors = 0 + warnings = 0 + taskfailures = [] + buildinfohelper = BuildInfoHelper(server, build_history_enabled) + continue if isinstance(event, bb.event.MetadataEvent): |