From 3b3770d46a495909ffab32eecc58f036daa6a122 Mon Sep 17 00:00:00 2001 From: Yang Zhang Date: Sun, 18 Aug 2013 20:16:36 -0700 Subject: [PATCH 1/3] Ignore broken symlinks/files that disappear --- src/bitrot.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/bitrot.py b/src/bitrot.py index 97fe219..52ce145 100644 --- a/src/bitrot.py +++ b/src/bitrot.py @@ -101,11 +101,17 @@ def run(verbosity=1, test=False): for path, _, files in os.walk(current_dir): for f in files: p = os.path.join(path, f) - st = os.stat(p) - if not stat.S_ISREG(st.st_mode) or p == bitrot_db: - continue - paths.append(p) - total_size += st.st_size + try: + st = os.stat(p) + except OSError as ex: + #import pdb; pdb.set_trace() + if ex.errno != 2: + raise + else: + if not stat.S_ISREG(st.st_mode) or p == bitrot_db: + continue + paths.append(p) + total_size += st.st_size paths.sort() for p in paths: st = os.stat(p) From a9b57b5814b45b2d8f5e0f810ae5719e4f5ddd9f Mon Sep 17 00:00:00 2001 From: Yang Zhang Date: Fri, 23 Aug 2013 14:05:21 -0700 Subject: [PATCH 2/3] Remove dangling pdb usage --- src/bitrot.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bitrot.py b/src/bitrot.py index 52ce145..0932c21 100644 --- a/src/bitrot.py +++ b/src/bitrot.py @@ -104,7 +104,6 @@ def run(verbosity=1, test=False): try: st = os.stat(p) except OSError as ex: - #import pdb; pdb.set_trace() if ex.errno != 2: raise else: From af81b67d5823fcb281e5b9ee8925a560b560d470 Mon Sep 17 00:00:00 2001 From: Yang Zhang Date: Thu, 17 Oct 2013 11:42:23 -0700 Subject: [PATCH 3/3] Use proper defined constant ENOENT --- src/bitrot.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bitrot.py b/src/bitrot.py index 0932c21..63a1184 100644 --- a/src/bitrot.py +++ b/src/bitrot.py @@ -29,6 +29,7 @@ from __future__ import unicode_literals import argparse import atexit import datetime +import errno import hashlib import os import shutil @@ -104,7 +105,7 @@ def run(verbosity=1, test=False): try: st = os.stat(p) except OSError as ex: - if ex.errno != 2: + if ex.errno != errno.ENOENT: raise else: if not stat.S_ISREG(st.st_mode) or p == bitrot_db: