From 68eebc28a637f017c4c85adc280e901f38a906a5 Mon Sep 17 00:00:00 2001 From: Christian Zangl Date: Mon, 7 Sep 2020 19:02:12 +0200 Subject: [PATCH] report errors separately --- chkbit/main.py | 17 +++++++++++++---- setup.py | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/chkbit/main.py b/chkbit/main.py index 31dd3bc..c2538e5 100644 --- a/chkbit/main.py +++ b/chkbit/main.py @@ -22,6 +22,7 @@ Status codes: class Main: def __init__(self): self.stdscr = None + self.bitrot_list = [] self.err_list = [] self.modified = False self.verbose = False @@ -33,9 +34,11 @@ class Main: if stat == Stat.FLAG_MOD: self.modified = True else: - if stat in [Stat.ERR_BITROT, Stat.INTERNALEXCEPTION]: + if stat == Stat.ERR_BITROT: + self.bitrot_list.append(path) + elif stat == Stat.INTERNALEXCEPTION: self.err_list.append(path) - if stat in [Stat.OK, Stat.UPDATE, Stat.NEW]: + elif stat in [Stat.OK, Stat.UPDATE, Stat.NEW]: self.total += 1 if self.verbose or not stat in [Stat.OK, Stat.SKIP]: print(stat.value, path) @@ -107,11 +110,17 @@ class Main: if self.modified: print("Indices were updated.") - if self.err_list: + if self.bitrot_list: print("chkbit detected bitrot in these files:", file=sys.stderr) + for err in self.bitrot_list: + print(err, file=sys.stderr) + print(f"error: detected {len(self.bitrot_list)} file(s) with bitrot!", file=sys.stderr) + if self.err_list: + print("chkbit ran into errors:", file=sys.stderr) for err in self.err_list: print(err, file=sys.stderr) - print(f"error: detected {len(self.err_list)} file(s) with bitrot!", file=sys.stderr) + + if self.bitrot_list or self.err_list: sys.exit(1) diff --git a/setup.py b/setup.py index 3cc3910..dda53d6 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ with open(os.path.join(os.path.dirname(__file__), "README.md"), encoding="utf-8" setup( name="chkbit", - version="2.0.0", + version="2.0.2", url="https://github.com/laktak/chkbit-py", author="Christian Zangl", author_email="laktak@cdak.net",