diff -r aa2a95dc6093 -r ecb41072a1b7 borgend.py --- a/borgend.py Sun Jan 21 23:52:35 2018 +0000 +++ b/borgend.py Mon Jan 22 00:12:51 2018 +0000 @@ -64,6 +64,7 @@ if __name__=="__main__": # Parse args. Let argparse handle errors/exit if there are any args= do_args() + tray = None try: args=do_args() @@ -85,22 +86,30 @@ backupconfigs=config.settings['backups'] backups=[None]*len(backupconfigs); - for i in range(len(backupconfigs)): - logger.info('Setting up backup set %d' % i) - backups[i]=Backup(i, backupconfigs[i]) - backups[i].schedule() + try: + for i in range(len(backupconfigs)): + logger.info('Setting up backup set %d' % i) + backups[i]=Backup(i, backupconfigs[i]) + backups[i].schedule() - if args.notray or platform.system()!='Darwin': - pass - else: - from ui import BorgendTray - tray=BorgendTray(backups); - tray.run() - + if args.notray or platform.system()!='Darwin': + pass + else: + from ui import BorgendTray + tray=BorgendTray(backups); + tray.run() + finally: + for i in range(len(backups)): + if backups[i]: + backups[i].abort() + backups=[] except Exception as err: utils.log_exception(logger, err, detail='Exiting') - logging.shutdown() - os.exit() + if tray: + tray.quit() + else: + logging.shutdown() + #sys.exit() # # This shit is fucked, disables ^C etc., and threading doesn't seem to help