[PATCH 2/1 v2] UIDMaps: ensure we don't update the map file in dry run mode
Nicolas Sebrecht
nicolas.s-dev at laposte.net
Mon Oct 24 19:09:18 BST 2016
Github-ref: https://github.com/OfflineIMAP/offlineimap/issues/380
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev at laposte.net>
---
offlineimap/folder/UIDMaps.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/offlineimap/folder/UIDMaps.py b/offlineimap/folder/UIDMaps.py
index cc4d84a..328ce7c 100644
--- a/offlineimap/folder/UIDMaps.py
+++ b/offlineimap/folder/UIDMaps.py
@@ -33,6 +33,7 @@ class MappedIMAPFolder(IMAPFolder):
be an IMAPFolder.
Instance variables (self.):
+ dryrun: boolean.
dofsync: boolean for fsync calls.
r2l: dict mapping message uids: self.r2l[remoteuid]=localuid
l2r: dict mapping message uids: self.r2l[localuid]=remoteuid
@@ -42,6 +43,7 @@ class MappedIMAPFolder(IMAPFolder):
def __init__(self, *args, **kwargs):
IMAPFolder.__init__(self, *args, **kwargs)
+ self.dryrun = self.config.getdefaultboolean("general", "dry-run", True)
self.dofsync = self.config.getdefaultboolean("general", "fsync", True)
self.maplock = Lock()
self.diskr2l, self.diskl2r = self._loadmaps()
@@ -94,6 +96,9 @@ class MappedIMAPFolder(IMAPFolder):
return (r2l, l2r)
def _savemaps(self):
+ if self.dryrun is True:
+ return
+
mapfilename = self._getmapfilename()
# Do not use the map file directly to prevent from leaving it truncated.
mapfilenametmp = "%s.tmp"% mapfilename
@@ -136,7 +141,6 @@ class MappedIMAPFolder(IMAPFolder):
with self.maplock:
# OK. Now we've got a nice list. First, delete things from the
# summary that have been deleted from the folder.
-
for luid in self.diskl2r.keys():
if not luid in reallist:
ruid = self.diskl2r[luid]
--
2.10.0
More information about the OfflineIMAP-project
mailing list