diff --git a/bitbake/lib/bb/main.py b/bitbake/lib/bb/main.py index 1c32e9308d..849cade8ca 100755 --- a/bitbake/lib/bb/main.py +++ b/bitbake/lib/bb/main.py @@ -247,6 +247,9 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters): help="Run bitbake without a UI, only starting a server " "(cooker) process.") + parser.add_option("", "--foreground", action="store_true", + help="Run bitbake server in foreground.") + parser.add_option("-B", "--bind", action="store", dest="bind", default=False, help="The name/address for the bitbake server to bind to.") @@ -357,7 +360,8 @@ def start_server(servermodule, configParams, configuration, features): if isinstance(event, logging.LogRecord): logger.handle(event) raise - server.detach() + if not configParams.foreground: + server.detach() cooker.lock.close() return server @@ -398,6 +402,10 @@ def bitbake_main(configParams, configuration): ("the BBSERVER environment variable" if "BBSERVER" in os.environ \ else "the '--remote-server' option")) + elif configParams.foreground: + raise BBMainException("FATAL: The '--foreground' option can only be used " + "with --server-only.\n") + if configParams.bind and configParams.servertype != "xmlrpc": raise BBMainException("FATAL: If '-B' or '--bind' is defined, we must " "set the servertype as 'xmlrpc'.\n") @@ -495,6 +503,8 @@ def bitbake_main(configParams, configuration): else: print("Bitbake server address: %s, server port: %s" % (server.serverImpl.host, server.serverImpl.port)) + if configParams.foreground: + server.serverImpl.serve_forever() return 0 return 1