]> code.delx.au - offlineimap/blobdiff - offlineimap/repository/LocalStatus.py
Make parent dirs of localstatus folders.
[offlineimap] / offlineimap / repository / LocalStatus.py
index 048026d4f7476367874cbad59fc259fc941b86bf..b3b17b1b32de869e1705eb89a2224de956912c67 100644 (file)
@@ -19,7 +19,7 @@
 from Base import BaseRepository
 from offlineimap import folder
 import offlineimap.folder.LocalStatus
-import os, re
+import os, re, os.path
 
 class LocalStatusRepository(BaseRepository):
     def __init__(self, reposname, account):
@@ -38,12 +38,17 @@ class LocalStatusRepository(BaseRepository):
         return os.path.join(self.directory, foldername)
 
     def makefolder(self, foldername):
-        # "touch" the file, truncating it.
+        # Create parent dirs
+        
         filename = self.getfolderfilename(foldername)
-        file = open(filename + ".tmp", "wb")
+        os.makedirs(os.path.dirname(foldername), 0700)
+
+        # "touch" the file, truncating it.
+        file = open(filename + ".tmp", "wt")
         file.write(offlineimap.folder.LocalStatus.magicline + '\n')
+        file.flush()
+        os.fsync(file.fileno())
         file.close()
-        os.unlink(filename)
         os.rename(filename + ".tmp", filename)
         
         # Invalidate the cache.