diff --git a/frontends/src/jp/base.py b/frontends/src/jp/base.py index 8e56ca05..3a57ab02 100644 --- a/frontends/src/jp/base.py +++ b/frontends/src/jp/base.py @@ -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 diff --git a/frontends/src/jp/constants.py b/frontends/src/jp/constants.py index 6291c905..c81504c8 100644 --- a/frontends/src/jp/constants.py +++ b/frontends/src/jp/constants.py @@ -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