From 65497fe91bac6ad57c3f7ef3a30899f65ecfb373 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sat, 28 Jan 2012 14:15:30 +0100 Subject: [PATCH] calculate mtime of a module recursively --- weboob/core/repositories.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/weboob/core/repositories.py b/weboob/core/repositories.py index 733b2cd1..d8ef6ec5 100644 --- a/weboob/core/repositories.py +++ b/weboob/core/repositories.py @@ -214,7 +214,7 @@ class Repository(object): print 'ERROR: %s' % e else: m = ModuleInfo(module.name) - m.version = int(datetime.fromtimestamp(os.path.getmtime(module_path)).strftime('%Y%m%d%H%M')) + m.version = self.get_tree_mtime(module_path) m.capabilities = [c.__name__ for c in module.iter_caps()] m.description = module.description m.maintainer = module.maintainer @@ -226,6 +226,18 @@ class Repository(object): self.update = int(datetime.now().strftime('%Y%m%d%H%M')) self.save(filename) + @staticmethod + def get_tree_mtime(path): + mtime = 0 + for root, dirs, files in os.walk(path): + for f in files: + if f.endswith('.pyc'): + continue + m = int(datetime.fromtimestamp(os.path.getmtime(os.path.join(root, f))).strftime('%Y%m%d%H%M')) + mtime = max(mtime, m) + + return mtime + def save(self, filename, private=False): """ Save repository into a file (modules.list for example).