weboob-config can't be run in interactive mode anymore

This commit is contained in:
Romain Bignon 2011-05-08 14:38:54 +02:00
commit c587ce65b0
2 changed files with 14 additions and 4 deletions

View file

@ -21,6 +21,7 @@
import os import os
import sys import sys
import re import re
from copy import copy
from weboob.capabilities.account import ICapAccount from weboob.capabilities.account import ICapAccount
from weboob.core.modules import ModuleLoadError from weboob.core.modules import ModuleLoadError
@ -40,6 +41,10 @@ class WeboobCfg(ReplApplication):
COMMANDS_FORMATTERS = {'backends': 'table', COMMANDS_FORMATTERS = {'backends': 'table',
'list': 'table', 'list': 'table',
} }
DISABLE_REPL = True
weboob_commands = copy(ReplApplication.weboob_commands)
weboob_commands.remove('backends')
def load_default_backends(self): def load_default_backends(self):
pass pass
@ -110,12 +115,15 @@ class WeboobCfg(ReplApplication):
def do_list(self, line): def do_list(self, line):
""" """
list list [CAPS ..]
Show configured backends. Show configured backends.
""" """
caps = line.split()
for instance_name, name, params in sorted(self.weboob.backends_config.iter_backends()): for instance_name, name, params in sorted(self.weboob.backends_config.iter_backends()):
backend = self.weboob.modules_loader.get_or_load_module(name) backend = self.weboob.modules_loader.get_or_load_module(name)
if caps and not self.caps_included(backend.iter_caps(), caps):
continue
row = OrderedDict([('Instance name', instance_name), row = OrderedDict([('Instance name', instance_name),
('Backend', name), ('Backend', name),
('Configuration', ', '.join( ('Configuration', ', '.join(

View file

@ -57,6 +57,8 @@ class ReplOptionFormatter(IndentedHelpFormatter):
def format_commands(self, commands): def format_commands(self, commands):
s = u'' s = u''
for section, cmds in commands.iteritems(): for section, cmds in commands.iteritems():
if len(cmds) == 0:
continue
if len(s) > 0: if len(s) > 0:
s += '\n' s += '\n'
s += '%s Commands:\n' % section s += '%s Commands:\n' % section
@ -78,6 +80,9 @@ class ReplApplication(Cmd, ConsoleApplication):
DEFAULT_FORMATTER = 'multiline' DEFAULT_FORMATTER = 'multiline'
COMMANDS_FORMATTERS = {} COMMANDS_FORMATTERS = {}
weboob_commands = set(['backends', 'condition', 'count', 'formatter', 'inspect', 'logging', 'select', 'quit'])
hidden_commands = set(['EOF'])
def __init__(self): def __init__(self):
Cmd.__init__(self) Cmd.__init__(self)
# XXX can't use bold prompt because: # XXX can't use bold prompt because:
@ -98,9 +103,6 @@ class ReplApplication(Cmd, ConsoleApplication):
'Type "help" to display available commands.', 'Type "help" to display available commands.',
'', '',
)) ))
self.weboob_commands = ['backends', 'condition', 'count', 'formatter', 'inspect', 'logging', 'select', 'quit']
self.hidden_commands = set(['EOF'])
self.formatters_loader = FormattersLoader() self.formatters_loader = FormattersLoader()
for key, klass in self.EXTRA_FORMATTERS.iteritems(): for key, klass in self.EXTRA_FORMATTERS.iteritems():
self.formatters_loader.register_formatter(key, klass) self.formatters_loader.register_formatter(key, klass)