From 6f1e91e2cd69c6285790705b41d9c234179e7ac7 Mon Sep 17 00:00:00 2001 From: Fuxino Date: Thu, 15 Jun 2023 17:14:17 +0200 Subject: [PATCH] Add more return codes --- man/simple_backup.1 | 6 ++++++ simple_backup/simple_backup.py | 18 +++++++++++++++--- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/man/simple_backup.1 b/man/simple_backup.1 index c7d31d3..c68f70b 100644 --- a/man/simple_backup.1 +++ b/man/simple_backup.1 @@ -72,6 +72,12 @@ No valid inputs selected for backup .TP .B 2 Backup failed because output directory for storing the backup does not exist +.TP +.B 3 +Permission denied to access the output directory +.TP +.B 4 +rsync error (rsync returned a non-zero value) .SH SEE ALSO .BR rsync (1) .SH AUTHORS diff --git a/simple_backup/simple_backup.py b/simple_backup/simple_backup.py index 3989f0b..c6496d9 100755 --- a/simple_backup/simple_backup.py +++ b/simple_backup/simple_backup.py @@ -1,6 +1,7 @@ #!/usr/bin/python3 # Import libraries +import sys import os from functools import wraps from shutil import rmtree @@ -156,6 +157,15 @@ class Backup: logger.info('No previous backups available') return + except PermissionError: + logger.critical('Cannot access the backup directory. Permission denied') + + try: + notify('Backup failed (check log for details)') + except NameError: + pass + + sys.exit(3) try: self._last_backup = dirs[-1] @@ -229,12 +239,16 @@ class Backup: notify('Backup finished with errors (check log for details)') except NameError: pass + + return 4 else: try: notify('Backup finished') except NameError: pass + return 0 + def _parse_arguments(): parser = argparse.ArgumentParser(prog='simple_backup', @@ -349,9 +363,7 @@ def simple_backup(): return_code = backup.check_params() if return_code == 0: - backup.run() - - return 0 + return backup.run() return return_code