From 94f91f20e16d35a937f5994b303210b5edf8e45c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Wed, 16 Oct 2013 17:22:00 +0200 Subject: [PATCH] daca2: improved cleanup --- tools/daca2.py | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/tools/daca2.py b/tools/daca2.py index 8d681e9ab..d702ee26f 100644 --- a/tools/daca2.py +++ b/tools/daca2.py @@ -31,12 +31,37 @@ def handleRemoveReadonly(func, path, exc): raise def removeAllExceptResults(): - filenames = glob.glob('[A-Za-z]*') - for filename in filenames: - if os.path.isdir(filename): - shutil.rmtree(filename, onerror=handleRemoveReadonly) - elif filename != 'results.txt': - os.remove(filename) + count = 5 + while count > 0: + count = count - 1 + + filenames = [] + for g in glob.glob('[A-Za-z0-9]*'): + filenames.append(g) + for g in glob.glob('.[a-z]*'): + filenames.append(g) + + try: + for filename in filenames: + if os.path.isdir(filename): + shutil.rmtree(filename, onerror=handleRemoveReadonly) + elif filename != 'results.txt': + os.remove(filename) + except WindowsError, err: + time.sleep(30) + if count == 0: + print('Failed to cleanup files/folders') + print(err) + sys.exit(1) + continue + except OSError, err: + time.sleep(30) + if count == 0: + print('Failed to cleanup files/folders') + print(err) + sys.exit(1) + continue + count = 0 def scanarchive(fullpath):