sep = .
-# Some users on *nix platforms may not want the atime (last access
-# time) to be modified by OfflineIMAP. In these cases, they would
-# want to set restoreatime to yes. OfflineIMAP will make an effort
-# to not touch the atime if you do that.
-#
-# In most cases, the default of no should be sufficient.
-
-restoreatime = no
-
[Repository RemoteExample]
# And this is the remote repository. For now, we only support IMAP here.
class SyncableAccount(Account, AccountSynchronizationMixin):
pass
-from stat import *
-
-def reset_time(folder, atime, mtime):
- t = atime, mtime
- os.utime(folder, t)
-
def syncfolder(accountname, remoterepos, remotefolder, localrepos,
statusrepos):
global mailboxes
localfolder = localrepos.\
getfolder(remotefolder.getvisiblename().\
replace(remoterepos.getsep(), localrepos.getsep()))
- if localrepos.getrestoreatime():
- cur_atime = os.stat(localfolder.getfullname() + "/cur")[ST_ATIME]
- new_atime = os.stat(localfolder.getfullname() + "/new")[ST_ATIME]
# Write the mailboxes
mbnames.add(accountname, localfolder.getvisiblename())
# Load local folder
if not localfolder.isuidvalidityok():
ui.validityproblem(localfolder, localfolder.getsaveduidvalidity(),
localfolder.getuidvalidity())
- if localrepos.getrestoreatime():
- reset_time(localfolder.getfullname() + "/new", new_atime, \
- os.stat(localfolder.getfullname() + "/new")[ST_MTIME])
- reset_time(localfolder.getfullname() + "/cur", new_atime, \
- os.stat(localfolder.getfullname() + "/cur")[ST_MTIME])
return
if not remotefolder.isuidvalidityok():
ui.validityproblem(remotefolder, remotefolder.getsaveduidvalidity(),
remotefolder.getuidvalidity())
- if localrepos.getrestoreatime():
- reset_time(localfolder.getfullname() + "/new", new_atime, \
- os.stat(localfolder.getfullname() + "/new")[ST_MTIME])
- reset_time(localfolder.getfullname() + "/cur", new_atime, \
- os.stat(localfolder.getfullname() + "/cur")[ST_MTIME])
return
else:
localfolder.saveuidvalidity()
ui.syncingmessages(localrepos, localfolder, statusrepos, statusfolder)
localfolder.syncmessagesto(statusfolder)
statusfolder.save()
- if localrepos.getrestoreatime():
- reset_time(localfolder.getfullname() + "/new", new_atime, \
- os.stat(localfolder.getfullname() + "/new")[ST_MTIME])
- reset_time(localfolder.getfullname() + "/cur", new_atime, \
- os.stat(localfolder.getfullname() + "/cur")[ST_MTIME])