k8s学习之cobra命令库学习

1.前言

打开k8s代码的时候,我发现基本上那几个核心服务都是使用cobra库作为命令行处理的能力。因此,为了对代码之后的代码学习的有比较深入的理解,因此先基于这个库写个demo,加深对这个库的一些理解吧

2.cobra库的基本简介

Github:GitHub - spf13/cobra: A Commander for modern Go CLI interactions 在这里了,Cobra是一个用Go语言实现的命令行工具。并且现在正在被很多项目使用,例如:Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速的创建命令行工具,特别适合写 测试脚本,各种服务的 Admin CLI等。

因为命令行参数,golang本身自带了"flag" 库,使用flag库呢

flag.Parse()  
​
args := flag.Args()

解析完之后,需要每个命令去判断,十分的麻烦。

但是我们在使用到时候,需要针对命令行进行各种解析判断,但是有了这个库,我们就可以减少这段冗余的代码了

3 cobra的使用demo

话不多说,我们直接给出怎么用这个项目。我的环境是在macos上。

3.1 首先下载依赖库

命令行执行

go get -u github.com/spf13/cobra@latest
3.2 命令行CLI工具
$ go install github.com/spf13/cobra-cli@latest

因为我本身我的golang代码路径已经建好了bin目录,因此,执行完该命令后,如下

我们看到了cobra-cli的可执行文件。

这边是我们可以在命令用这个东西,进行初始化了。集体步骤如下

xxx@MBP src % mkdir greet
xxx@MBP src % cd greet
xxx@MBP test % ls
xxx@MBP greet % cobra-cli init
Error: Please run `go mod init <MODNAME>` before `cobra-cli init`
xxx@MBP greet % go mod init greet
go: creating new go.mod: module greet
xxx@MBP greet % ls
go.mod
xxx@MBP greet % cobra-cli init
Your Cobra application is ready at
/Users/XXX/workspace/golang/src/greet
xxx@MBP greet % ls
LICENSE cmd go.mod  go.sum  main.go
xxx@MBP greet %

第一步先建好一个test目录,然后执行go mod init test,然后再执行cobra-cli init的命令行,就会生成了脚手架文件了。

目录中会产生一下文件:

main.go cmd LICENSE go.mod go.sum
├── LICENSE
├── cmd
│   └── root.go
└── main.go
    go.mod 
    go.sum

3.3 编写代码文件

刚刚生成的文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值