From 9d87c8bc375e30d2110844cce9afe2bcf830b08f Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Tue, 17 Jan 2012 17:59:03 +0100 Subject: [PATCH] "weboob-config update" installs missing modules referenced in ~/.weboob/backends --- weboob/applications/weboobcfg/weboobcfg.py | 2 +- weboob/core/ouiboube.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/weboob/applications/weboobcfg/weboobcfg.py b/weboob/applications/weboobcfg/weboobcfg.py index 6eea8fe3..cbbc9524 100644 --- a/weboob/applications/weboobcfg/weboobcfg.py +++ b/weboob/applications/weboobcfg/weboobcfg.py @@ -267,7 +267,7 @@ class WeboobCfg(ReplApplication): def progress(self, percent, message): print '=== [%3.0f%%] %s' % (percent*100, message) - self.weboob.repositories.update(Progress()) + self.weboob.update(Progress()) def do_install(self, line): """ diff --git a/weboob/core/ouiboube.py b/weboob/core/ouiboube.py index a37a969f..2b5bf8ea 100644 --- a/weboob/core/ouiboube.py +++ b/weboob/core/ouiboube.py @@ -83,6 +83,18 @@ class Weboob(object): def deinit(self): self.unload_backends() + def update(self, progress=None): + """ + Update modules. + """ + self.repositories.update(progress) + + modules_to_check = set([module_name for name, module_name, params in self.backends_config.iter_backends()]) + for module_name in modules_to_check: + minfo = self.repositories.get_module_info(module_name) + if minfo and not minfo.is_installed(): + self.repositories.install(minfo, progress) + class LoadError(Exception): def __init__(self, backend_name, exception): Exception.__init__(self, unicode(exception))