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 协议》,转载必须注明作者和本文链接