如何检索在 Rust 中使用 docopt 时使用的子命令?
How do I retrieve the subcommand used when using docopt in Rust?
我正在编写一个命令行实用程序,它有几个子命令:
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 来处理这个问题吗?
如果您的结构中有 cmd_start: bool
、cmd_stop: bool
等,Docopt 会将使用的设置为 true
。
此处有更多信息:https://github.com/docopt/docopt.rs#struct-field-name-mapping,复制如下以供后代使用:
Struct field name mapping
The field names of the struct map like this:
-g => flag_g
--group => flag_group
--group <arg> => flag_group
FILE => arg_FILE
<file> => arg_file
build => cmd_build
我正在编写一个命令行实用程序,它有几个子命令:
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 来处理这个问题吗?
如果您的结构中有 cmd_start: bool
、cmd_stop: bool
等,Docopt 会将使用的设置为 true
。
此处有更多信息:https://github.com/docopt/docopt.rs#struct-field-name-mapping,复制如下以供后代使用:
Struct field name mapping
The field names of the struct map like this:
-g => flag_g --group => flag_group --group <arg> => flag_group FILE => arg_FILE <file> => arg_file build => cmd_build