go cobra一个简单好用的命令行工具

简介

Cobra是一个用Go语言实现的命令行工具。并且现在正在被很多项目使用,例如:Kubernetes,、Hugo和Github CLI等。通过使用Cobra,不仅可以快速的创建命令行界面,也可以快速开发基于Cobra的应用程序。

在cobra的git地址上有详细的使用教程,本篇文章是学习总结。cobra的git地址为:github.com/spf13/cobra

项目创建

cobra init --pkg-name=appName
示例:
mkdir newApp && cd newAPP
go mod init newAPp
cobra init --pkg-name=newApp

初始文件分析

mian.go

package main

import "newApp/cmd"

func main() {
	cmd.Execute()
}

cmd/root.go

package cmd
var cfgFile string

// rootCmd表示在没有任何子命令的情况下调用的基本命令
var rootCmd = &cobra.Command{
	Use:   "newApp",
	Short: "命令的简单描述, 当不指定这个命令时,显示这个描述。",
	Long: `命令的详细描述, 当指定这个命令时,显示这个描述.
				例如:newName -h`,
		
	// 当调用就这个命令时,就会执行到这里。			
	Run: func(cmd *cobra.Command, args []string) {
		fmt.Println("newapp is called")
	},
}

// 这个函数由main()调用。只需要在根cmd上发生一次。
// Execute() 也将所有子命令添加到根命令并适当的设置标志。
func Execute() {
	cobra.CheckErr(rootCmd.Execute())
}

// init 函数,主要设置一些配置
func init() {

	cobra.OnInitialize(initConfig)

	// cobra支持全局的标志,在这里定义的标志全局可用。
	// 这个标志下面会介绍到
	//rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.new.yaml)")

	
	// cobra也支持局部标志,在这里定义的只会在命令发送时调用。
	// 下面也会介绍到
	//rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle")

}

// 配置文件
func initConfig() {
	...
	...
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值