]> code.delx.au - offlineimap/blobdiff - offlineimap/repository/LocalStatus.py
Unify LocalStatus.py repository code with folder code
[offlineimap] / offlineimap / repository / LocalStatus.py
index c30e1f1a718ea8a5c3c3f74a1de0ada49bb8cdfd..8b7ac51d9f733ad00b941d658a417ae960bc1743 100644 (file)
@@ -18,6 +18,7 @@
 
 from Base import BaseRepository
 from offlineimap import folder
+import offlineimap.folder.LocalStatus
 import os, re
 
 class LocalStatusRepository(BaseRepository):
@@ -37,9 +38,15 @@ class LocalStatusRepository(BaseRepository):
         return os.path.join(self.directory, foldername)
 
     def makefolder(self, foldername):
-        # "touch" the file.
-        file = open(self.getfolderfilename(foldername), "ab")
+        # "touch" the file, truncating it.
+        filename = self.getfolderfilename(foldername)
+        file = open(filename + ".tmp", "wt")
+        file.write(offlineimap.folder.LocalStatus.magicline + '\n')
+        file.flush()
+        os.fsync(file.fileno())
         file.close()
+        os.rename(filename + ".tmp", filename)
+        
         # Invalidate the cache.
         self.folders = None