diff --git a/weboob/applications/weboobrepos/weboobrepos.py b/weboob/applications/weboobrepos/weboobrepos.py index 788be829..205b2a11 100644 --- a/weboob/applications/weboobrepos/weboobrepos.py +++ b/weboob/applications/weboobrepos/weboobrepos.py @@ -20,6 +20,7 @@ from __future__ import with_statement from datetime import datetime +from time import mktime, strptime import tarfile import os import shutil @@ -110,6 +111,8 @@ class WeboobRepos(ReplApplication): print 'Create archive for %s' % name with closing(tarfile.open(tarname, 'w:gz')) as tar: tar.add(module_path, arcname=name, exclude=self._archive_excludes) + tar_mtime = mktime(strptime(str(module.version), '%Y%m%d%H%M')) + os.utime(tarname, (tar_mtime, tar_mtime)) # Copy icon. icon_path = os.path.join(module_path, 'favicon.png') diff --git a/weboob/core/repositories.py b/weboob/core/repositories.py index d8ef6ec5..4ffc73e1 100644 --- a/weboob/core/repositories.py +++ b/weboob/core/repositories.py @@ -211,7 +211,7 @@ class Repository(object): try: module = Module(__import__(name, fromlist=[str(name)])) except Exception, e: - print 'ERROR: %s' % e + print >>sys.stderr, 'ERROR: %s' % e else: m = ModuleInfo(module.name) m.version = self.get_tree_mtime(module_path) @@ -227,8 +227,10 @@ class Repository(object): self.save(filename) @staticmethod - def get_tree_mtime(path): + def get_tree_mtime(path, include_root=False): mtime = 0 + if include_root: + mtime = int(datetime.fromtimestamp(os.path.getmtime(path)).strftime('%Y%m%d%H%M')) for root, dirs, files in os.walk(path): for f in files: if f.endswith('.pyc'): @@ -453,7 +455,7 @@ class Repositories(object): try: repository.retrieve_index(dest_path) except RepositoryUnavailable, e: - print 'Error: %s' % e + print >>sys.stderr, 'Error: %s' % e else: self.repositories.append(repository)