From 4fadc30b92d42523fee013c168d47bc93dfe4fbd Mon Sep 17 00:00:00 2001 From: Lianhao Lu Date: Tue, 14 Jun 2011 15:12:16 +0800 Subject: bitbake cooker/ui: handle cmd line parsing result by individual UI. Changed the return result of "getCmdLineAction" to a dictionary {'action', 'msg'} to allow the individual UI decide how to handle the cmd line parsing result. (Bitbake rev: 521909d1350a415d19516aa1710041e30950c7cc) Signed-off-by: Lianhao Lu Signed-off-by: Richard Purdie --- bitbake/lib/bb/cooker.py | 34 ++++++++++++++++------------------ bitbake/lib/bb/ui/depexp.py | 7 +++++-- bitbake/lib/bb/ui/goggle.py | 6 +++++- bitbake/lib/bb/ui/knotty.py | 6 +++++- bitbake/lib/bb/ui/ncurses.py | 6 +++++- 5 files changed, 36 insertions(+), 23 deletions(-) diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index ecf20dcf68..1f6e093efb 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -178,41 +178,39 @@ class BBCooker: def parseCommandLine(self): # Parse any commandline into actions + self.commandlineAction = {'action':None, 'msg':None} if self.configuration.show_environment: - self.commandlineAction = None - if 'world' in self.configuration.pkgs_to_build: - buildlog.error("'world' is not a valid target for --environment.") - if 'universe' in self.configuration.pkgs_to_build: - buildlog.error("'universe' is not a valid target for --environment.") + self.commandlineAction['msg'] = "'world' is not a valid target for --environment." + elif 'universe' in self.configuration.pkgs_to_build: + self.commandlineAction['msg'] = "'universe' is not a valid target for --environment." elif len(self.configuration.pkgs_to_build) > 1: - buildlog.error("Only one target can be used with the --environment option.") + self.commandlineAction['msg'] = "Only one target can be used with the --environment option." elif self.configuration.buildfile and len(self.configuration.pkgs_to_build) > 0: - buildlog.error("No target should be used with the --environment and --buildfile options.") + self.commandlineAction['msg'] = "No target should be used with the --environment and --buildfile options." elif len(self.configuration.pkgs_to_build) > 0: - self.commandlineAction = ["showEnvironmentTarget", self.configuration.pkgs_to_build] + self.commandlineAction['action'] = ["showEnvironmentTarget", self.configuration.pkgs_to_build] else: - self.commandlineAction = ["showEnvironment", self.configuration.buildfile] + self.commandlineAction['action'] = ["showEnvironment", self.configuration.buildfile] elif self.configuration.buildfile is not None: - self.commandlineAction = ["buildFile", self.configuration.buildfile, self.configuration.cmd] + self.commandlineAction['action'] = ["buildFile", self.configuration.buildfile, self.configuration.cmd] elif self.configuration.revisions_changed: - self.commandlineAction = ["compareRevisions"] + self.commandlineAction['action'] = ["compareRevisions"] elif self.configuration.show_versions: - self.commandlineAction = ["showVersions"] + self.commandlineAction['action'] = ["showVersions"] elif self.configuration.parse_only: - self.commandlineAction = ["parseFiles"] + self.commandlineAction['action'] = ["parseFiles"] elif self.configuration.dot_graph: if self.configuration.pkgs_to_build: - self.commandlineAction = ["generateDotGraph", self.configuration.pkgs_to_build, self.configuration.cmd] + self.commandlineAction['action'] = ["generateDotGraph", self.configuration.pkgs_to_build, self.configuration.cmd] else: - self.commandlineAction = None - buildlog.error("Please specify a package name for dependency graph generation.") + self.commandlineAction['msg'] = "Please specify a package name for dependency graph generation." else: if self.configuration.pkgs_to_build: - self.commandlineAction = ["buildTargets", self.configuration.pkgs_to_build, self.configuration.cmd] + self.commandlineAction['action'] = ["buildTargets", self.configuration.pkgs_to_build, self.configuration.cmd] else: + #self.commandlineAction['msg'] = "Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information." self.commandlineAction = None - buildlog.error("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.") def runCommands(self, server, data, abort): """ diff --git a/bitbake/lib/bb/ui/depexp.py b/bitbake/lib/bb/ui/depexp.py index dcf7e6e2f3..b62adbf851 100644 --- a/bitbake/lib/bb/ui/depexp.py +++ b/bitbake/lib/bb/ui/depexp.py @@ -199,10 +199,13 @@ class gtkthread(threading.Thread): def main(server, eventHandler): try: cmdline = server.runCommand(["getCmdLineAction"]) - if not cmdline or cmdline[0] != "generateDotGraph": + if cmdline and not cmdline['action']: + print(cmdline['msg']) + return + elif not cmdline or (cmdline['action'] and cmdline['action'][0] != "generateDotGraph"): print("This UI is only compatible with the -g option") return - ret = server.runCommand(["generateDepTreeEvent", cmdline[1], cmdline[2]]) + ret = server.runCommand(["generateDepTreeEvent", cmdline['action'][1], cmdline['action'][2]]) if ret != True: print("Couldn't run command! %s" % ret) return diff --git a/bitbake/lib/bb/ui/goggle.py b/bitbake/lib/bb/ui/goggle.py index bd03d31983..b2fd2741aa 100644 --- a/bitbake/lib/bb/ui/goggle.py +++ b/bitbake/lib/bb/ui/goggle.py @@ -82,8 +82,12 @@ def main (server, eventHandler): try: cmdline = server.runCommand(["getCmdLineAction"]) if not cmdline: + print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.") return 1 - ret = server.runCommand(cmdline) + elif not cmdline['action']: + print(cmdline['msg']) + return 1 + ret = server.runCommand(cmdline['action']) if ret != True: print("Couldn't get default commandline! %s" % ret) return 1 diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index 997eb3fe89..a4deb468bb 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py @@ -80,8 +80,12 @@ def main(server, eventHandler): try: cmdline = server.runCommand(["getCmdLineAction"]) if not cmdline: + print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.") return 1 - ret = server.runCommand(cmdline) + elif not cmdline['action']: + print(cmdline['msg']) + return 1 + ret = server.runCommand(cmdline['action']) if ret != True: print("Couldn't get default commandline! %s" % ret) return 1 diff --git a/bitbake/lib/bb/ui/ncurses.py b/bitbake/lib/bb/ui/ncurses.py index 469f1b7309..8684697aa2 100644 --- a/bitbake/lib/bb/ui/ncurses.py +++ b/bitbake/lib/bb/ui/ncurses.py @@ -232,8 +232,12 @@ class NCursesUI: try: cmdline = server.runCommand(["getCmdLineAction"]) if not cmdline: + print("Nothing to do. Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.") return - ret = server.runCommand(cmdline) + elif not cmdline['action']: + print(cmdline['msg']) + return + ret = server.runCommand(cmdline['action']) if ret != True: print("Couldn't get default commandlind! %s" % ret) return -- cgit v1.2.3-54-g00ecf