diff options
| author | Chris Larson <chris_larson@mentor.com> | 2010-12-10 16:53:19 -0700 | 
|---|---|---|
| committer | Richard Purdie <rpurdie@linux.intel.com> | 2011-01-04 14:46:49 +0000 | 
| commit | 098f63d6727e3b4db0a8906deee52c75f03047fb (patch) | |
| tree | a6937b895dc0126fa684695b15e42700f8fb3eb2 | |
| parent | 5a92e67b8655d0971c6e3e8233e984ef9ad42997 (diff) | |
| download | openembedded-core-098f63d6727e3b4db0a8906deee52c75f03047fb.tar.gz openembedded-core-098f63d6727e3b4db0a8906deee52c75f03047fb.tar.bz2 openembedded-core-098f63d6727e3b4db0a8906deee52c75f03047fb.zip | |
Rename command events, adjust compareRevisions
- 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>
| -rw-r--r-- | bitbake/lib/bb/command.py | 58 | ||||
| -rw-r--r-- | bitbake/lib/bb/cooker.py | 4 | ||||
| -rw-r--r-- | bitbake/lib/bb/fetch/__init__.py | 2 | ||||
| -rw-r--r-- | bitbake/lib/bb/ui/depexp.py | 10 | ||||
| -rw-r--r-- | bitbake/lib/bb/ui/knotty.py | 10 | ||||
| -rw-r--r-- | bitbake/lib/bb/ui/ncurses.py | 6 | 
6 files changed, 41 insertions, 49 deletions
| diff --git a/bitbake/lib/bb/command.py b/bitbake/lib/bb/command.py index 30c7240cf2..b88089298c 100644 --- a/bitbake/lib/bb/command.py +++ b/bitbake/lib/bb/command.py @@ -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) diff --git a/bitbake/lib/bb/cooker.py b/bitbake/lib/bb/cooker.py index 3b4eae8c4c..8ac88b99a4 100644 --- a/bitbake/lib/bb/cooker.py +++ b/bitbake/lib/bb/cooker.py @@ -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 diff --git a/bitbake/lib/bb/fetch/__init__.py b/bitbake/lib/bb/fetch/__init__.py index 0562d72a23..668b788698 100644 --- a/bitbake/lib/bb/fetch/__init__.py +++ b/bitbake/lib/bb/fetch/__init__.py @@ -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. diff --git a/bitbake/lib/bb/ui/depexp.py b/bitbake/lib/bb/ui/depexp.py index 31004db44a..a6039ec57d 100644 --- a/bitbake/lib/bb/ui/depexp.py +++ b/bitbake/lib/bb/ui/depexp.py @@ -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 diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index e0f08ecb6e..d3534a0f5b 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py @@ -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): diff --git a/bitbake/lib/bb/ui/ncurses.py b/bitbake/lib/bb/ui/ncurses.py index 3bc8373964..1db4ec173b 100644 --- a/bitbake/lib/bb/ui/ncurses.py +++ b/bitbake/lib/bb/ui/ncurses.py @@ -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 | 
