From ef4caa3455236a7861050355cd3e0118be491f98 Mon Sep 17 00:00:00 2001 From: Nils Philippsen Date: Wed, 24 Aug 2016 14:11:44 +0200 Subject: [PATCH] Ensure temporary directories are cleaned up always. Previously, if SCM.checkout() raised an exception, the created temporary directory would be left over. --- rida/scm.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/rida/scm.py b/rida/scm.py index 14732fd4..5540c8dd 100644 --- a/rida/scm.py +++ b/rida/scm.py @@ -167,13 +167,21 @@ class SCM(object): hc.close() return True if rc == 200 else False else: + td = None try: td = tempfile.mkdtemp() self.checkout(td) - shutil.rmtree(td) return True except: return False + finally: + try: + if td is not None: + shutil.rmtree(td) + except Exception as e: + log.warning( + "Failed to remove temporary directory {!r}: {}".format( + td, str(e))) @property def url(self):