jp (base): added C.ITEM pubsub flag when --item is required

This commit is contained in:
Goffi 2018-03-31 18:40:54 +02:00
commit 060d4a065f
2 changed files with 9 additions and 1 deletions

View file

@ -355,7 +355,12 @@ class Jp(object):
pubsub_group.add_argument("-n", "--node", type=unicode_decoder, default=u'', help=node_help)
if flags.single_item:
pubsub_group.add_argument("-i", "--item", type=unicode_decoder, help=_(u"item to retrieve"))
item_help = (u"item to retrieve")
if not flags.item:
default = defaults.pop(u'item', _(u'last item'))
if default is not None:
item_help += _(u" (DEFAULT: {default})".format(default=default))
pubsub_group.add_argument("-i", "--item", type=unicode_decoder, help=item_help)
pubsub_group.add_argument("-L", "--last-item", action='store_true', help=_(u'retrieve last item'))
elif flags.multi_items:
# mutiple items
@ -516,6 +521,8 @@ class Jp(object):
self.parser.error(_(u"argument -s/--service is required"))
if C.NODE in flags and not self.args.node:
self.parser.error(_(u"argument -n/--node is required"))
if C.ITEM in flags and not self.args.item:
self.parser.error(_(u"argument -i/--item is required"))
# FIXME: mutually groups can't be nested in a group and don't support title
# so we check conflict here. This may be fixed in Python 3, to be checked

View file

@ -39,6 +39,7 @@ class Const(constants.Const):
# Pubsub options flags
SERVICE = u'service' # service required
NODE = u'node' # node required
ITEM = u'item' # item required
SINGLE_ITEM = u'single_item' # only one item is allowed
MULTI_ITEMS = u'multi_items' # multiple items are allowed
NO_MAX = u'no_max' # don't add --max option for multi items