From 0ebf8d579d73304d6b5704a27e49ec1c95447f12 Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Fri, 8 Oct 2010 10:51:42 +0200 Subject: [PATCH] add class attribute to disable REPL behaviour --- weboob/applications/monboob/monboob.py | 3 ++- weboob/applications/weboobcli/weboobcli.py | 5 ++++- weboob/tools/application/repl.py | 12 ++++++++++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/weboob/applications/monboob/monboob.py b/weboob/applications/monboob/monboob.py index 976dc00c..7ac1b05f 100644 --- a/weboob/applications/monboob/monboob.py +++ b/weboob/applications/monboob/monboob.py @@ -85,6 +85,7 @@ class Monboob(ReplApplication): 'smtp': 'localhost', 'html': 0} CAPS = ICapMessages + DISABLE_REPL = True def add_application_options(self, group): group.add_option('-S', '--smtpd', help='run a fake smtpd server and set the port') @@ -98,7 +99,7 @@ class Monboob(ReplApplication): def main(self, argv): self.load_config() - return self.onecmd(' '.join(argv[1:])) + return ReplApplication.main(self, argv) def get_email_address_ident(self, msg, header): s = msg.get(header) diff --git a/weboob/applications/weboobcli/weboobcli.py b/weboob/applications/weboobcli/weboobcli.py index 8e1701a8..360465c6 100644 --- a/weboob/applications/weboobcli/weboobcli.py +++ b/weboob/applications/weboobcli/weboobcli.py @@ -28,13 +28,16 @@ class WeboobCli(ReplApplication): APPNAME = 'weboob-cli' VERSION = '0.2' COPYRIGHT = 'Copyright(C) 2010 Romain Bignon' + SYNOPSIS = 'Usage: %prog [-dqv] [-b backends] [-cnfs] capability method [arguments..]\n' + SYNOPSIS += ' %prog [--help] [--version]' + DISABLE_REPL = True def load_default_backends(self): pass def main(self, argv): if len(argv) < 3: - print >>sys.stderr, "Syntax: %s capability command [args ..]" % argv[0] + print >>sys.stderr, "Syntax: %s capability method [args ..]" % argv[0] return 1 cap_s = argv[1] diff --git a/weboob/tools/application/repl.py b/weboob/tools/application/repl.py index b3583e76..120220ac 100644 --- a/weboob/tools/application/repl.py +++ b/weboob/tools/application/repl.py @@ -52,6 +52,7 @@ class ReplApplication(Cmd, BaseApplication): SYNOPSIS = 'Usage: %prog [-dqv] [-b backends] [-cnfs] [command [arguments..]]\n' SYNOPSIS += ' %prog [--help] [--version]' CAPS = None + DISABLE_REPL = False # shell escape strings BOLD = '' @@ -86,9 +87,13 @@ class ReplApplication(Cmd, BaseApplication): if self._parser.description is None: self._parser.description = '' + help_str = u'' + app_cmds, weboob_cmds, undoc_cmds = self.get_commands_doc() - help_str = '%s Commands:\n%s\n\n' % (self.APPNAME.capitalize(), '\n'.join(' %s' % cmd for cmd in sorted(app_cmds + undoc_cmds))) - help_str +='Weboob Commands:\n%s\n' % '\n'.join(' %s' % cmd for cmd in weboob_cmds) + if len(app_cmds) > 0 or len(undoc_cmds) > 0: + help_str += '%s Commands:\n%s\n\n' % (self.APPNAME.capitalize(), '\n'.join(' %s' % cmd for cmd in sorted(app_cmds + undoc_cmds))) + if not self.DISABLE_REPL: + help_str +='Weboob Commands:\n%s\n' % '\n'.join(' %s' % cmd for cmd in weboob_cmds) self._parser.description += help_str results_options = OptionGroup(self._parser, 'Results Options') @@ -337,6 +342,9 @@ class ReplApplication(Cmd, BaseApplication): ret = self.onecmd(cmd) if ret: return ret + elif self.DISABLE_REPL: + self._parser.print_help() + self._parser.exit() else: self.intro += '\nLoaded backends: %s\n' % ', '.join(sorted(backend.name for backend in self.weboob.iter_backends())) self._interactive = True