borgend.py

changeset 46
ecb41072a1b7
parent 45
aa2a95dc6093
child 49
db33dfa64ad6
--- 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

mercurial