aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2020-09-22 22:23:57 -0700
committerMax Resnick <max@ofmax.li>2020-09-22 22:23:57 -0700
commit7b597be4b9576f6d045169c91ef30a94d6abfdef (patch)
tree0bf9f2b24e0ddc49ccbb49b4331f6b616343aaa9
parent38a152ad7eea6e07d02007d719db26528272e328 (diff)
downloadgit-snapshot-7b597be4b9576f6d045169c91ef30a94d6abfdef.tar.gz
exit properly, track errorsv0.0.2
-rw-r--r--gitsnap/snap.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/gitsnap/snap.py b/gitsnap/snap.py
index 6fd2820..0089ec7 100644
--- a/gitsnap/snap.py
+++ b/gitsnap/snap.py
@@ -25,7 +25,7 @@ parser_backup.add_argument('-p', '--prefix', type=str, default='gitsnap',
args = parser.parse_args()
Context = collections.namedtuple('Context',
- 'repo bucket prefix bundle repo_name wal')
+ 'repo bucket prefix bundle repo_name wal successes errors')
class Wal(object):
@@ -38,6 +38,8 @@ class Wal(object):
def __init__(self):
self.fd = open(self.WAL_FILE, 'a')
self.wal = csv.writer(self.fd, quotechar='|', quoting=csv.QUOTE_ALL)
+ self.errors = 0
+ self.successes = 0
def __enter__(self):
return self
@@ -60,13 +62,15 @@ def logit(log_message):
def logitargs(func):
@wraps(func)
def with_logging(ctx, *args, **kwargs):
- ctx.wal.write([log_message, f'started {ctx.repo_name}'])
+ ctx.wal.write([log_message, 'started', ctx.repo_name])
output = None
try:
output = func(ctx, *args, **kwargs)
except Exception as e:
- ctx.wal.write([log_message, f'failed {e}'])
- ctx.wal.write([log_message, f' completed {ctx.repo_name}'])
+ ctx.wal.write([log_message, 'failed', e])
+ ctx.errors += 1
+ return output
+ ctx.wal.write([log_message, 'completed', ctx.repo_name])
return output
return with_logging
return logitargs
@@ -123,9 +127,13 @@ def run_backups(base, bucket, prefix):
bucket=bucket,
prefix=prefix,
bundle=None,
+ successes=0,
+ errors=0,
wal=wal
)
run_backup(ctx)
+ if ctx.errors != 0:
+ sys.exit(1)
def run():
if args.cmd == 'backup':