k8sailor - 02 使用 cobra 管理命令与参数集群连接参数
2023-02-18 16:39:38 时间
tag: https://github.com/tangx/k8sailor/tree/feat/01-cobra-command
为了更加方便的管理配置文件的来源, 这里使用 cobra 进行命令行构建
效果如下
cd cmd/k8sailor && go run .
k8s 管理平台
Usage:
k8sailor [flags]
Flags:
--config string k8s 配置授权文件 (default "./k8sconfig/config.yml")
-h, --help help for k8sailor
编码
变量管理
在 cmd/k8sailor/global
目录中管理 全局 变量。
其中,定义一个 CmdFlag
结构体管理所有 cobra flags。
type CmdFlags struct {
Config string `flag:"config" usage:"k8s 配置授权文件" persistent:"true"`
}
var Flags = &CmdFlags{
Config: "./k8sconfig/config.yml",
}
cobra
在 cmd/k8sailor/cmd
中管理所有 cobra 命令。root.go
在代码中使用了 cobrautils 库帮助管理 flag 绑定。
func init() {
cobrautils.BindFlags(rootCmd, global.Flags)
}
启动
在 main.go 调用 cmd/root.go
的启动函数。运行结果如上所示。
目录结构
# tree
.
├── README.md
├── cmd
│ └── k8sailor
│ ├── cmd
│ │ └── root.go
│ ├── global
│ │ └── config.go
│ ├── k8sconfig
│ │ └── config.yml
│ └── main.go
├── go.mod
└── go.sum
6 directories, 9 files
相关文章
- SPI:Java的高可扩展利器
- Java反射机制清空字符串导致业务异常分析
- 7000+字图文并茂解带你深入理解java锁升级的每个细节
- 全文手敲代码,教你用Java实现扫雷小游戏
- 4种方法教你如何查看java对象所占内存大小
- 手绘图解java类加载原理
- Java中的线程到底有哪些安全策略
- Java中观察者模式与委托,还在傻傻分不清
- 一图详解java-class类文件原理
- Java遇上SPL:架构优势和开发效率,一个不放过
- 长篇图解java反射机制及其应用场景
- [java并发编程]基于信号量semaphore实现限流器
- java并发编程-StampedLock高性能读写锁
- 【java并发编程】ReentrantLock 可重入读写锁
- 【java并发编程】Lock & Condition 协调同步生产消费
- Java synchronized对象级别与类级别的同步锁
- java并发编程JUC第十二篇:AtomicInteger原子整型
- java并发编程JUC第十一篇:如何在线程之间进行对等数据交换
- java并发编程JUC第十篇:CyclicBarrier线程同步
- java并发编程JUC第九篇:CountDownLatch线程同步