我正在编写一个命令行实用程序,它有几个子命令:
Usage:
example start [-w | --write] [-F | --force] <name>
example stop [-F | --force] <name>
example restart [-F | --force] <name>
example status [-F | --force] <name>
example ls
example install <name>
example uninstall <name>
example show
example edit <name>
example (-h | --help)
Options:
-h --help Show help message
-F --force Force start/stop/restart
-w --write TODO
这完全解析了参数,但它不允许我检索使用的子命令。
另一种方法是使用example <command> <name> [<args>...]
,但这不再为您提供docopt的功能,您可以再次使用不同的方法解析它...
知道如何设置Rust内部的docopt来处理它吗?
答案 0 :(得分:2)
如果您的结构中有cmd_start: bool
,cmd_stop: bool
等,Docopt会将使用过的设置为true
。
此处有更多信息:https://github.com/docopt/docopt.rs#struct-field-name-mapping,下面复制后代:
结构字段名称映射
结构图的字段名称如下:
-g => flag_g --group => flag_group --group <arg> => flag_group FILE => arg_FILE <file> => arg_file build => cmd_build