命令行cobra

安装

Cobra:

$ go get -u github.com/spf13/cobra

Cobra代码生成工具:

$ go get -u github.com/spf13/cobra/cobra

项目自动生成

$ mkdir cobra-demo
$ cd cobra-demo/
$ cobra init --pkg-name cobra-demo
$ go mod init cobra-demo
$ go mod tidy
$ tree
.
├── LICENSE
├── cmd
   └── root.go
├── go.mod
├── go.sum
└── main.go

命令行参数绑定

cmd目录创建对应的配置文件sample.yaml

和相应的sample.go

cmd/root.go添加解析到结构体变量的代码:

打开rootCMD变量的Run函数,项目代码

功能验证

添加子命令

修改 subCmd 变量:

功能验证

Command & Flag

如上 sub 为 Command,--config 和 --apiVersion 是 Flag

Command 可以按树型结构嵌套

Persistent Flags & Local Flags

通过 PersistentFlags 绑定的参数在全局生效

Local Flags 绑定的参数在指定的 Command 下生效,在其他的 Command 下查询就查不出来了

Last updated

Was this helpful?