From 9ed28ac6b09669c443eeaa84abf6fc12a87c6242 Mon Sep 17 00:00:00 2001 From: Ethan Dalool Date: Fri, 11 Nov 2022 15:11:08 -0800 Subject: [PATCH] Log the number and size of files recycled. --- recycle.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/recycle.py b/recycle.py index 0285468..eae9bb7 100644 --- a/recycle.py +++ b/recycle.py @@ -1,18 +1,30 @@ import send2trash import sys +from voussoirkit import bytestring from voussoirkit import pathclass from voussoirkit import pipeable +from voussoirkit import vlogging +log = vlogging.get_logger(__name__, 'recycle') + +@vlogging.main_decorator def main(argv): + count = 0 + total_bytes = 0 for path in pathclass.glob_many(pipeable.go(argv, skip_blank=True)): pipeable.stdout(path.absolute_path) try: + this_bytes = path.size send2trash.send2trash(path) except Exception as exc: - pipeable.stderr(f'Recycling {path.absolute_path} caused an exception:') - pipeable.stderr(str(exc)) + message = f'Recycling {path.absolute_path} caused an exception:\n{exc}' + log.error(message) return 1 + else: + count += 1 + total_bytes += this_bytes + log.info(f'Recycled {count} files totaling {bytestring.bytestring(total_bytes)}.') return 0 if __name__ == '__main__':