Cobra 快速入门
Cobra 是 一个 go 语言的命令行工具库, 它可通过简单的命令生成命令行文件, 只需简单的配置即可构建命令行应用. Cobra 有在许多优秀的 Go 项目中使用, 例如 Kubernetes, Hugo, GitHub CLI 等. 下面我将介绍如何通过 Cobra 构建一个简单的命令行应用
官方链接
- 源码: spf13/cobra
- 文档: cobra.dev
预备知识
快速开始
新建项目
go mod init cobra-demo
安装 Cobra
go get -u github.com/spf13/cobra/cobra
初始化命令
cobra init --pkg-name cobra-demo
注意
--pkg-name 为 go mod 项目名
新建子命令
cobra add server
此时文件结构如下
├── LICENSE
├── cmd
│ ├── root.go
│ └── server.go
├── go.mod
├── go.sum
└── main.go
编译并运行程序
go build -o cobra-demo.exe main.go
$ cobra-demo server
server called
添加作者信息和选择软件许可证
我们注意到生成的命令行文件的头注释带有作者和许可证信息, 默认内容如下, 可以通过命令行和配置文件两种方式修改内容
cmd/root.go
/*
Copyright © 2021 NAME HERE <EMAIL ADDRESS>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
通过命令行
cobra init --pkg-name cobra-demo -a "lintech1024 <lintech1024@hotmail.com>" -l mit
cobra add server -a "lintech1024 <lintech1024@hotmail.com>" -l mit