go-zero-antd实战-3(go-zero添加cobra命令行工具)

go-zero-antd实战-3(go-zero添加cobra命令行工具)

对于一个后台来说,肯定在一些情况下需要使用命令行执行一些命令,所以添加了cobra包来实现需要的功能

安装


// 安装cobra命令

go install github.com/spf13/cobra-cli@latest

// 在项目下创建command文件夹用来初始化cobra

mkdir command

cd command

// 初始cobra项目

cobra-cli init

添加一个命令看看


cobra-cli init userlist

// 回显

root@tdev:/home/code/go-zero-antd-backend/api/command# cobra-cli add userlist

userlist created at /home/code/go-zero-antd-backend/api/command

// 运行命令看看效果

go run main.go userlist

// 返回

userlist called

项目目录


.

├── LICENSE

├── cmd

│ ├── root.go

│ └── userlist.go

└── main.go

添加go-zero serverctx

添加这个目的就是可以使用go-zero的一些配置,保证一致性

修改 command/cmd/root.go


// 定义全局变量

var  svcCtx *svc.ServiceContext

...

unc init() {

...

var  c config.Config

conf.MustLoad("../etc/backend.yaml", &c)

svcCtx = svc.NewServiceContext(c)

}

测试是否可以使用

修改 command/cmd/userlist.go


Run: func(cmd *cobra.Command, args []string) {

u := svcCtx.BkModel.User

d, err := u.WithContext(context.Background()).Debug().First()

if err != nil {

fmt.Println(err)

}

fmt.Println(d)

},

执行命令


go run main.go userlist

// 回显

[0.463ms] [rows:1] SELECT * FROM `user` ORDER BY `user`.`id` LIMIT 1

&{1 tim 0 123456 1 0 0}

源码已上传

地址

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!