offlineimap rev 563

"Automatic Subversion Change Mailer" <[email protected]> Wed, 13 Aug 2003 11:08:56 -0500 (CDT)
Newsgroups gmane.mail.imap.offlineimap.subversion
Message-ID <[email protected]>
You are receiving this message because
all commits get sent to this address.

Author: jgoerzen
Date: 2003-08-13 11:08:33 -0500 (Wed, 13 Aug 2003)
New Revision: 563

Modified:
  offlineimap/branches/twisted/offlineimap/accounts.py
  offlineimap/branches/twisted/offlineimap/syncmaster.py
  offlineimap/branches/twisted/offlineimap/ui/UIBase.py

Log:
Now exits after synchronization is complete.


Diff:
Modified: offlineimap/branches/twisted/offlineimap/accounts.py
===================================================================
--- offlineimap/branches/twisted/offlineimap/accounts.py	2003-08-13 16:02:01 UTC (rev 562)
+++ offlineimap/branches/twisted/offlineimap/accounts.py	2003-08-13 16:08:33 UTC (rev 563)
@@ -114,12 +114,14 @@
             d = self.sync()
             d.addCallback(self.acctdone)
             return d
+
+        # FIXME: this needs help
         looping = 1
         while looping:
-            self.sync()
+            d = self.sync()
             looping = self.sleeper() != 2
-        self.ui.acctdone(self.name)
-
+        return d
+    
     def acctdone(self, ignore):
         self.ui.acctdone(self.name)
 

Modified: offlineimap/branches/twisted/offlineimap/syncmaster.py
===================================================================
--- offlineimap/branches/twisted/offlineimap/syncmaster.py	2003-08-13 16:02:01 UTC (rev 562)
+++ offlineimap/branches/twisted/offlineimap/syncmaster.py	2003-08-13 16:08:33 UTC (rev 563)
@@ -21,13 +21,22 @@
 from offlineimap.accounts import SyncableAccount
 from offlineimap.ui import UIBase
 from ConfigParser import ConfigParser
+from twisted.internet import defer
 
 def syncaccount(config, accountname):
     account = SyncableAccount(config, accountname)
-    account.syncrunner()
+    return account.syncrunner()
     
 def syncitall(accounts, config):
     ui = UIBase.getglobalui()
     mbnames.init(config, accounts)
+    deferreds = []
     for accountname in accounts:
-        syncaccount(config, accountname)
+        deferreds.append(syncaccount(config, accountname))
+    dl = defer.DeferredList(deferreds)
+    dl.addCallback(exiting)
+
+def exiting(ignore):
+    ui = UIBase.getglobalui()
+    ui.terminate()
+    

Modified: offlineimap/branches/twisted/offlineimap/ui/UIBase.py
===================================================================
--- offlineimap/branches/twisted/offlineimap/ui/UIBase.py	2003-08-13 16:02:01 UTC (rev 562)
+++ offlineimap/branches/twisted/offlineimap/ui/UIBase.py	2003-08-13 16:08:33 UTC (rev 563)
@@ -305,7 +305,10 @@
 
     def terminate(s, exitstatus = 0):
         """Called to terminate the application."""
-        sys.exit(exitstatus)
+        from twisted.internet import reactor
+        reactor.stop()
+        #FIXME: exit status handling is b0rked
+        #sys.exit(exitstatus)
 
     def threadExited(s, thread):
         """Called when a thread has exited normally.  Many UIs will