Browse Source

platform_windows: sync_dir = no-op for now

*scratches head again about inheritance vs. composition*

*thinks that composition would be more apt, but hasn't yet reached
 conclusion on how to implement it nicely here*
Marian Beermann 9 years ago
parent
commit
51dc9f1e8b
2 changed files with 16 additions and 1 deletions
  1. 1 1
      borg/platform.py
  2. 15 0
      borg/platform_windows.pyx

+ 1 - 1
borg/platform.py

@@ -9,4 +9,4 @@ elif sys.platform.startswith('freebsd'):  # pragma: freebsd only
 elif sys.platform == 'darwin':  # pragma: darwin only
 elif sys.platform == 'darwin':  # pragma: darwin only
     from .platform_darwin import acl_get, acl_set, swidth, API_VERSION
     from .platform_darwin import acl_get, acl_set, swidth, API_VERSION
 elif sys.platform == 'win32':  # pragma: windows only
 elif sys.platform == 'win32':  # pragma: windows only
-    from .platform_windows import acl_get, acl_set, API_VERSION, get_owner, set_owner
+    from .platform_windows import acl_get, acl_set, API_VERSION, get_owner, set_owner, sync_dir, SyncFile

+ 15 - 0
borg/platform_windows.pyx

@@ -1,6 +1,7 @@
 #cython: language_level=3
 #cython: language_level=3
 
 
 import json
 import json
+import os.path
 from libc.stddef cimport wchar_t
 from libc.stddef cimport wchar_t
 from libc.stdint cimport uint16_t, uint32_t, uint64_t
 from libc.stdint cimport uint16_t, uint32_t, uint64_t
 cimport cpython.array
 cimport cpython.array
@@ -8,6 +9,7 @@ import array
 
 
 import platform
 import platform
 from .helpers import safe_decode, safe_encode
 from .helpers import safe_decode, safe_encode
+from .platform_base import SyncFile as BaseSyncFile
 
 
 API_VERSION = 3
 API_VERSION = 3
 
 
@@ -327,3 +329,16 @@ def acl_set(path, item, numeric_owner=False):
     free(ACEs)
     free(ACEs)
     PyMem_Free(cstrPath)
     PyMem_Free(cstrPath)
     LocalFree(<HLOCAL>newDACL)
     LocalFree(<HLOCAL>newDACL)
+
+
+def sync_dir(path):
+    # TODO
+    pass
+
+
+class SyncFile(BaseSyncFile):
+    def close(self):
+        """sync() and close."""
+        self.sync()
+        self.fd.close()
+        sync_dir(os.path.dirname(self.fd.name))