diff frontends/src/jp/base.py @ 2235:4db836386641

jp: added use_pubsub and use_pubsub_node_req arguments to CommandBase pubsub add --node and --service arguments pubsub_node_req add --service and a positional node argument (i.e. mandatory)
author Goffi <goffi@goffi.org>
date Thu, 27 Apr 2017 01:01:43 +0200
parents 1010054cf771
children fd4111075e00
line wrap: on
line diff
--- a/frontends/src/jp/base.py	Thu Apr 27 00:59:25 2017 +0200
+++ b/frontends/src/jp/base.py	Thu Apr 27 01:01:43 2017 +0200
@@ -309,6 +309,15 @@
         verbose_parent = self.parents['verbose'] = argparse.ArgumentParser(add_help=False)
         verbose_parent.add_argument('--verbose', '-v', action='count', default=0, help=_(u"Add a verbosity level (can be used multiple times)"))
 
+        for parent_name in ('pubsub', 'pubsub_node_req'):
+            parent = self.parents[parent_name] = argparse.ArgumentParser(add_help=False)
+            parent.add_argument("-s", "--service", type=unicode_decoder, default=u'',
+                                help=_(u"JID of the PubSub service (default: PEP service)"))
+            if parent_name == 'pubsub_node_req':
+                parent.add_argument("node", type=unicode_decoder, help=_(u"node to request"))
+            else:
+                parent.add_argument("-n", "--node", type=unicode_decoder, default=u'', help=_(u"node to request"))
+
     def add_parser_options(self):
         self.parser.add_argument('--version', action='version', version=("%(name)s %(version)s %(copyleft)s" % {'name': PROG_NAME, 'version': self.version, 'copyleft': COPYLEFT}))
 
@@ -616,6 +625,10 @@
         else:
             assert extra_outputs is None
 
+        if 'use_pubsub' in kwargs and 'use_pubsub_node_req' in kwargs:
+            raise exceptions.InternalError(u"use_pubsub and use_pubsub_node_req can't be used at the same time."
+                                           u"Use the later one when node is required (else an empty string is used as default)")
+
         # other common options
         use_opts = {k:v for k,v in kwargs.iteritems() if k.startswith('use_')}
         for param, do_use in use_opts.iteritems():