From 1c75cc4d0c8b606c1fe76e6bf60bf6a32298b105 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Tue, 23 Sep 2014 12:58:22 +0100 Subject: knotty: Ensure commandline parameters are updated in memres server When using options like -k, -f, -v and so on with the memory resident server, they'd currently only be set on the initial values passed to the original command. This ensures they now match those specified on the commandline for the options where this makes sense. To make this work, a command to update the options on the server side is required so this is added. [YOCTO #5292] Signed-off-by: Richard Purdie --- lib/bb/command.py | 4 ++++ lib/bb/cooker.py | 4 ++++ lib/bb/cookerdata.py | 11 +++++++++++ lib/bb/ui/knotty.py | 1 + 4 files changed, 20 insertions(+) diff --git a/lib/bb/command.py b/lib/bb/command.py index 0cfed0a96..60f9ac08a 100644 --- a/lib/bb/command.py +++ b/lib/bb/command.py @@ -271,6 +271,10 @@ class CommandsSync: # we always take and leave the cooker in state.initial setFeatures.readonly = True + def updateConfig(self, command, params): + options = params[0] + command.cooker.updateConfigOpts(options) + class CommandsAsync: """ A class of asynchronous commands diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py index f463603d5..c6c69c30e 100644 --- a/lib/bb/cooker.py +++ b/lib/bb/cooker.py @@ -371,6 +371,10 @@ class BBCooker: self.handleCollections( self.data.getVar("BBFILE_COLLECTIONS", True) ) + def updateConfigOpts(self,options): + for o in options: + setattr(self.configuration, o, options[o]) + def runCommands(self, server, data, abort): """ Run any queued asynchronous command diff --git a/lib/bb/cookerdata.py b/lib/bb/cookerdata.py index 60a6d516a..470d5381a 100644 --- a/lib/bb/cookerdata.py +++ b/lib/bb/cookerdata.py @@ -69,6 +69,17 @@ class ConfigParameters(object): if bbpkgs: self.options.pkgs_to_build.extend(bbpkgs.split()) + def updateToServer(self, server): + options = {} + for o in ["abort", "tryaltconfigs", "force", "invalidate_stamp", + "verbose", "debug", "dry_run", "dump_signatures", + "debug_domains", "extra_assume_provided", "profile"]: + options[o] = getattr(self.options, o) + + ret, error = server.runCommand(["updateConfig", options]) + if error: + raise Exception("Unable to update the server configuration with local parameters: %s" % error) + def parseActions(self): # Parse any commandline into actions action = {'action':None, 'msg':None} diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py index 307886d78..9e58b3172 100644 --- a/lib/bb/ui/knotty.py +++ b/lib/bb/ui/knotty.py @@ -284,6 +284,7 @@ def main(server, eventHandler, params, tf = TerminalFilter): if not params.observe_only: params.updateFromServer(server) + params.updateToServer(server) cmdline = params.parseActions() if not cmdline: print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.") -- cgit 1.2.3-korg