微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有嵌套规则的“ docopts style”用法消息?

如何解决带有嵌套规则的“ docopts style”用法消息?

我之所以发布此问题,是因为我不确定使用嵌套的docopt约定为cli工具创建有意义的用法消息是否对熟悉docopt用法消息的用户有意义。在这方面,我想澄清一下。

某些历史记录:我决定与docopt conventions一起使用yargs编写的node动力cli工具创建使用消息。我不想像yargsdocopts那样将使用情况消息解析到程序本身中。相反,我只是想使用使用情况消息来帮助用户正确使用该工具。 docopt约定的基础可以从docopts文档中总结出来:

  • 使用方括号“ []”,括号“()”,管道“ |”和省略号“ ...”描述可选,必需,互斥和重复的元素。这些元素一起形成有效的使用模式,每个模式都以程序的名称开头。

我在cli工具中使用“ seed”命令的规则如下:

  1. 该命令可以在没有任何选项的情况下运行
  2. 如果命令与-i--interactive--cf--configFile一起运行,则除此以外,不能使用其他选项。此外,--cf--configFile选项具有必需的'file'参数。
  3. 如果该命令未与-i--interactive--cf <file>--configFile <file>一起运行,则任何其他选项都可以组合使用。

我使用docopt约定将这些规则表示为用法消息,如下所示:

'mycli.js seed [ ( -i | --interactive | --cf <file> | --configFile <file>) ) | [options] ]'

这有意义吗?还是有另一种方法可以更准确或更清楚地描述上述规则?除了嵌套docopt规则并使用[options]来描述用法字符串中未提及的所有 other 选项之外,我无法找到一种更好的方法。有很多选项,很多都有长名称和别名,所以我不想明确提及它们。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。