report UID validity problem in exit code
Since skipping a folder means no new data is downloaded, the UID validity problem is a backup failure. Make it possible to alert or work around it in scripts by signaling with the exit code. Signed-off-by: Alex Kapranoff <alex@kapranoff.ru> Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
parent
c8e5f32eba
commit
07af72081a
@ -65,6 +65,8 @@ class UIBase(object):
|
|||||||
self.logfile = None
|
self.logfile = None
|
||||||
self.exc_queue = Queue()
|
self.exc_queue = Queue()
|
||||||
# saves all occuring exceptions, so we can output them at the end
|
# saves all occuring exceptions, so we can output them at the end
|
||||||
|
self.uidval_problem = False
|
||||||
|
# at least one folder skipped due to UID validity problem
|
||||||
# create logger with 'OfflineImap' app
|
# create logger with 'OfflineImap' app
|
||||||
self.logger = logging.getLogger('OfflineImap')
|
self.logger = logging.getLogger('OfflineImap')
|
||||||
self.logger.setLevel(loglevel)
|
self.logger.setLevel(loglevel)
|
||||||
@ -345,6 +347,7 @@ class UIBase(object):
|
|||||||
self.logger.info("Skipping %s (not changed)" % folder)
|
self.logger.info("Skipping %s (not changed)" % folder)
|
||||||
|
|
||||||
def validityproblem(self, folder):
|
def validityproblem(self, folder):
|
||||||
|
self.uidval_problem = True
|
||||||
self.logger.warning("UID validity problem for folder %s (repo %s) "
|
self.logger.warning("UID validity problem for folder %s (repo %s) "
|
||||||
"(saved %d; got %d); skipping it. Please see FAQ "
|
"(saved %d; got %d); skipping it. Please see FAQ "
|
||||||
"and manual on how to handle this."% \
|
"and manual on how to handle this."% \
|
||||||
@ -516,6 +519,10 @@ class UIBase(object):
|
|||||||
self.warn('ERROR: %s\n\n%s\n'% (errortitle, errormsg))
|
self.warn('ERROR: %s\n\n%s\n'% (errortitle, errormsg))
|
||||||
elif errormsg:
|
elif errormsg:
|
||||||
self.warn('%s\n'% errormsg)
|
self.warn('%s\n'% errormsg)
|
||||||
|
if self.uidval_problem:
|
||||||
|
self.warn('At least one folder skipped due to UID validity problem')
|
||||||
|
if exitstatus == 0:
|
||||||
|
exitstatus = 2
|
||||||
sys.exit(exitstatus)
|
sys.exit(exitstatus)
|
||||||
|
|
||||||
def threadExited(self, thread):
|
def threadExited(self, thread):
|
||||||
|
Loading…
Reference in New Issue
Block a user