From bcec326f35f9cd2301e8a78abda9f5215177e7b8 Mon Sep 17 00:00:00 2001 From: Laurent Bachelier Date: Sun, 29 Jan 2012 12:08:32 +0100 Subject: [PATCH] Remove the whole module directory before updating So that deleted/renamed files upstream are actually deleted. Also check that the proper module directory was created after extraction. --- weboob/core/repositories.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/weboob/core/repositories.py b/weboob/core/repositories.py index 4ffc73e1..370c07bb 100644 --- a/weboob/core/repositories.py +++ b/weboob/core/repositories.py @@ -516,8 +516,13 @@ class Repositories(object): progress.progress(0.7, 'Setting up module...') # Extract module from tarball. + module_dir = os.path.join(self.modules_dir, info.name) + if os.path.isdir(module_dir): + shutil.rmtree(module_dir) with closing(tarfile.open('', 'r:gz', fp)) as tar: tar.extractall(self.modules_dir) + if not os.path.isdir(module_dir): + raise ModuleInstallError('The archive for %s looks invalid.' % info.name) self.versions.set(info.name, info.version)