Documentation
¶
Overview ¶
Package cmd 用 cobra 组织命令行。
Go 小白知识点:
- cobra 是 Go 生态最流行的命令行库(kubectl、hugo、gh 都用它)。
- cobra.Command 代表一条命令;Use 是命令名称,Short 是单行简介,Long 是 --help 全文。
- rootCmd 是「根命令」,所有子命令(如 gen)都挂在它下面,形成命令树。
- init() 是 Go 的包初始化函数,在 main 运行前自动调用,不可手动调用。 每个 .go 文件可以有自己的 init();同一包内多个 init() 按文件名字母序执行。
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Execute ¶
func Execute() error
Execute 由 main 调用,启动整个命令树的解析与执行。 cobra.Command.Execute() 内部会:
- 解析 os.Args(命令行参数)
- 找到对应子命令
- 绑定 flags
- 调用 RunE / Run 回调
func SetVersion ¶ added in v0.8.2
func SetVersion(v string)
SetVersion 由 main 在启动时调用,把构建期注入的版本号交给根命令。
空串会被忽略——ldflags 未注入时 main.version 可能是空串,若直接赋值会让 --version 输出 "base-code version " 这种半截结果,不如保留缺省的 dev 有意义。
Go 小白知识点:版本号走「构建期注入」而非写死在源码里,是 Go 项目的通行做法—— 编译时用 -ldflags "-X 包路径.变量名=值" 改写某个包级 string 变量的初值, 这样同一份源码能编出带不同版本号的产物,不必为发版改一行代码再提交。
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.