源码分析之Docopt-go

Posted 魏小言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了源码分析之Docopt-go相关的知识,希望对你有一定的参考价值。

源码分析之Docopt-go

地址:https://github.com/docopt/docopt.go

Doc命令行解析工具
https://github.com/docopt/docopt.go
例子:

./flowanalysis checkCfg --config config/flowanalysis.test.toml go run
main.go checkCfg --config config/flowanalysis.test.toml

Format
var usage string = `
analysis


Usage:
    analysis server --config=<file> [--consul]
    analysis file --config=<file> --input=<file> [--output=<file>] [--output-agg=<file>]
    analysis checkCfg --config=<file>
    analysis dumpStorage --dir=<dir>
    analysis collect --config=<file>
    analysis query --from=<now-1m> --to=<now> [--address=<127.0.0.1:10130>]
    analysis -h | --help
    analysis -v | --version


Options:
    -h --help     Show this screen.
    --version     Show version.
    --consul      Register consul service
`

DocOpt核心解析部分

//parse and return a map of args, output and all errors
func parse(doc string, argv []string, help bool, version string, optionsFirst bool) (args map[string]interface{}, output string, err error)

DocOpt解析结果数据结构

arguments struct:
file => false
collect => false
--to => <nil>
--output-agg => <nil>
--from => <nil>
--address => <nil>
--help => false
--consul => false
--input => <nil>
--output => <nil>
dumpStorage => false
query => false
-v => false
--dir => <nil>
--version => false
server => false
--config => config/flowanalysis.test.toml
checkCfg => true

以上是关于源码分析之Docopt-go的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段

ArrayPool 源码解读之 byte[] 也能池化?

ArrayPool 源码解读之 byte[] 也能池化?

《Docker 源码分析》全球首发啦!

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool