]> code.ossystems Code Review - openembedded-core.git/commitdiff
Rename command events, adjust compareRevisions
authorChris Larson <chris_larson@mentor.com>
Fri, 10 Dec 2010 23:53:19 +0000 (16:53 -0700)
committerRichard Purdie <rpurdie@linux.intel.com>
Tue, 4 Jan 2011 14:46:49 +0000 (14:46 +0000)
- Moved the logic for comparing revisions from cooker into command
- Removed 'Cooker' from the event names
- Renamed the 'ExitCode' event into CommandExit, and changed CommandFailed to
  be a subclass of CommandExit

(Bitbake rev: c51ed5d7a9971fad6019dac6c35a71b8a54ab16a)

Signed-off-by: Chris Larson <chris_larson@mentor.com>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
bitbake/lib/bb/command.py
bitbake/lib/bb/cooker.py
bitbake/lib/bb/fetch/__init__.py
bitbake/lib/bb/ui/depexp.py
bitbake/lib/bb/ui/knotty.py
bitbake/lib/bb/ui/ncurses.py

index 30c7240cf2bb41ffa350b2691a37b5c4d9637395..b88089298cab6aaaeee2c204901143bd1610b772 100644 (file)
@@ -35,12 +35,25 @@ import bb.data
 async_cmds = {}
 sync_cmds = {}
 
+
+class CommandCompleted(bb.event.Event):
+    pass
+
+class CommandExit(bb.event.Event):
+    def  __init__(self, exitcode):
+        bb.event.Event.__init__(self)
+        self.exitcode = int(exitcode)
+
+class CommandFailed(CommandExit):
+    def __init__(self, message):
+        self.error = message
+        CommandExit.__init__(self, 1)
+
 class Command:
     """
     A queue of asynchronous commands for bitbake
     """
     def __init__(self, cooker):
-
         self.cooker = cooker
         self.cmds_sync = CommandsSync()
         self.cmds_async = CommandsAsync()
@@ -105,11 +118,13 @@ class Command:
             self.finishAsyncCommand(traceback.format_exc())
             return False
 
-    def finishAsyncCommand(self, error = None):
-        if error:
-            bb.event.fire(CookerCommandFailed(error), self.cooker.configuration.event_data)
+    def finishAsyncCommand(self, msg=None, code=None):
+        if msg:
+            bb.event.fire(CommandFailed(msg), self.cooker.configuration.event_data)
+        elif code:
+            bb.event.fire(CommandExit(code), self.cooker.configuration.event_data)
         else:
-            bb.event.fire(CookerCommandCompleted(), self.cooker.configuration.event_data)
+            bb.event.fire(CommandCompleted(), self.cooker.configuration.event_data)
         self.currentAsyncCommand = None
 
 
@@ -249,33 +264,8 @@ class CommandsAsync:
         """
         Parse the .bb files
         """
-        command.cooker.compareRevisions()
-        command.finishAsyncCommand()
+        if bb.fetch.fetcher_compare_revisions(command.cooker.configuration.data):
+            command.finishAsyncCommand(code=1)
+        else:
+            command.finishAsyncCommand()
     compareRevisions.needcache = True
-
-#
-# Events
-#
-class CookerCommandCompleted(bb.event.Event):
-    """
-    Cooker command completed
-    """
-    def  __init__(self):
-        bb.event.Event.__init__(self)
-
-
-class CookerCommandFailed(bb.event.Event):
-    """
-    Cooker command completed
-    """
-    def  __init__(self, error):
-        bb.event.Event.__init__(self)
-        self.error = error
-
-class CookerCommandSetExitCode(bb.event.Event):
-    """
-    Set the exit code for a cooker command
-    """
-    def  __init__(self, exitcode):
-        bb.event.Event.__init__(self)
-        self.exitcode = int(exitcode)
index 3b4eae8c4ccf4da38f37c9b499b104ea67f1c0cc..8ac88b99a4e68afaa125507379e0f62eed156ddd 100644 (file)
@@ -191,10 +191,6 @@ class BBCooker:
 
             logger.plain("%-35s %25s %25s", p, lateststr, prefstr)
 
-    def compareRevisions(self):
-        ret = bb.fetch.fetcher_compare_revisons(self.configuration.data)
-        bb.event.fire(bb.command.CookerCommandSetExitCode(ret), self.configuration.event_data)
-
     def showEnvironment(self, buildfile = None, pkgs_to_build = []):
         """
         Show the outer or per-package environment
index 0562d72a23b5d680af83fc3cea624ce944938657..668b7886980dd8625604bba957ff4f4fa5ba5809 100644 (file)
@@ -174,7 +174,7 @@ def fetcher_init(d):
     pd.addDomain("BB_URI_HEADREVS")
     pd.addDomain("BB_URI_LOCALCOUNT")
 
-def fetcher_compare_revisons(d):
+def fetcher_compare_revisions(d):
     """
     Compare the revisions in the persistant cache with current values and
     return true/false on whether they've changed.
index 31004db44abdf712b1291323297317188d58db3e..a6039ec57d3e6ff0493969110b5d77b07042372b 100644 (file)
@@ -21,6 +21,8 @@ import gobject
 import gtk
 import threading
 import xmlrpclib
+import bb
+import bb.event
 from bb.ui.crumbs.progress import ProgressBar
 
 # Package Model
@@ -236,11 +238,13 @@ def main(server, eventHandler):
                 parse(event._depgraph, dep.pkg_model, dep.depends_model)
                 gtk.gdk.threads_leave()
 
-            if isinstance(event, bb.command.CookerCommandCompleted):
+            if isinstance(event, bb.command.CommandCompleted):
                 continue
-            if isinstance(event, bb.command.CookerCommandFailed):
+            if isinstance(event, bb.command.CommandFailed):
                 print("Command execution failed: %s" % event.error)
-                break
+                return event.exitcode
+            if isinstance(event, bb.command.CommandExit):
+                return event.exitcode
             if isinstance(event, bb.cooker.CookerExit):
                 break
 
index e0f08ecb6e1fd5cb51b4eff4dd18d0452dc775c3..d3534a0f5b83233ba1fba4acc0ee0e7f7a03f1c9 100644 (file)
@@ -163,15 +163,15 @@ def main(server, eventHandler):
                     % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors)))
                 continue
 
-            if isinstance(event, bb.command.CookerCommandCompleted):
+            if isinstance(event, bb.command.CommandCompleted):
                 break
-            if isinstance(event, bb.command.CookerCommandSetExitCode):
+            if isinstance(event, bb.command.CommandFailed):
                 return_value = event.exitcode
-                continue
-            if isinstance(event, bb.command.CookerCommandFailed):
-                return_value = 1
                 logger.error("Command execution failed: %s" % event.error)
                 break
+            if isinstance(event, bb.command.CommandExit):
+                return_value = event.exitcode
+                continue
             if isinstance(event, bb.cooker.CookerExit):
                 break
             if isinstance(event, bb.event.MultipleProviders):
index 3bc8373964641b3f5d05352546c52fe449203fb3..1db4ec173b78824e945a3fa4ebf0378954333b5c 100644 (file)
@@ -288,12 +288,14 @@ class NCursesUI:
 #                        else:
 #                            bb.msg.error(bb.msg.domain.Build, "see log in %s" % logfile)
 
-                if isinstance(event, bb.command.CookerCommandCompleted):
+                if isinstance(event, bb.command.CommandCompleted):
                     exitflag = True
-                if isinstance(event, bb.command.CookerCommandFailed):
+                if isinstance(event, bb.command.CommandFailed):
                     mw.appendText("Command execution failed: %s" % event.error)
                     time.sleep(2)
                     exitflag = True
+                if isinstance(event, bb.command.CommandExit):
+                    exitflag = True
                 if isinstance(event, bb.cooker.CookerExit):
                     exitflag = True