provide non-zero exit code & display configuration mismatch error at the end of the run

This behaviour is what users would expected most. The error message is about
utf8foldernames and decodefoldernames.

Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
Nicolas Sebrecht 2017-10-02 21:21:48 +02:00
parent 12de158ca2
commit 6b64f87462

View File

@ -274,21 +274,6 @@ class SyncableAccount(Account):
raise raise
return return
if self.utf_8_support and self.remoterepos.getdecodefoldernames():
e = OfflineImapError("Configuration mismatch in account " +
"'%s'. "% self.getname() +
"\nAccount setting 'utf8foldernames' and repository " +
"setting 'decodefoldernames'\nmay not be used at the " +
"same time. This account has not been synchronized.\n" +
"Please check the configuration and documentation.",
OfflineImapError.ERROR.REPO)
self.ui.error(e, exc_info()[2],
msg="Configuration mismatch in account " +
"'%s'. "% self.getname())
# Abort *this* account without doing any changes.
# Other accounts are not affected.
return
# Loop account sync if needed (bail out after 3 failures). # Loop account sync if needed (bail out after 3 failures).
looping = 3 looping = 3
while looping: while looping:
@ -341,6 +326,15 @@ class SyncableAccount(Account):
hook = self.getconf('presynchook', '') hook = self.getconf('presynchook', '')
self.callhook(hook) self.callhook(hook)
if self.utf_8_support and self.remoterepos.getdecodefoldernames():
raise OfflineImapError("Configuration mismatch in account " +
"'%s'. "% self.getname() +
"\nAccount setting 'utf8foldernames' and repository " +
"setting 'decodefoldernames'\nmay not be used at the " +
"same time. This account has not been synchronized.\n" +
"Please check the configuration and documentation.",
OfflineImapError.ERROR.REPO)
quickconfig = self.getconfint('quick', 0) quickconfig = self.getconfint('quick', 0)
if quickconfig < 0: if quickconfig < 0:
quick = True quick = True