Cobra 程序包简单解读

Cobra是一个用于创建现代CLI应用的Golang库,提供简易的子命令行模式、命令行别名、自动生成帮助信息等功能。本文介绍了Cobra的基本概念、如何获取和安装Cobra,以及Command结构体、执行命令、帮助子命令和标志的添加方法。
摘要由CSDN通过智能技术生成

Cobra 程序包简单解读

前言

笔者最近有改写 cobra 程序包的作业需要完成,所以去查看学习了原作者 spf13 写的cobra 程序包,这里记录一下自己的学习心得。

https://github.com/spf13/cobra

cobra 简介

cobra 是一个现代 CLI 命令行的 golang 库,是一个用于生成程序应用和命令行文件的程序

  • Cobra是一个库,提供了一个简单的界面来创建类似于git&go工具的强大的现代CLI界面。
  • Cobra也是一个应用程序,它将生成您的应用程序支架,以快速开发基于Cobra的应用程序。

cobra 功能

  1. 简易的子命令行模式,如app server、app get等

  2. 完全兼容posix命令行模式

  3. 支持全局、局部、串联flags

  4. 使用cobra很容易生成应用程序和命令,使用cobra create和cobra cmdname

  5. 如果命令输入有错误,将提供只能建议,如app gt,将提示gt不存在,是否是app get

  6. 自动生成详细的help信息,如app help

  7. 自动识别-h,–help和帮助flag

  8. 自动生成应用程序在bash下命令自动改完成功能

  9. 自动生成应用程序的man手册

  10. 命令行别名

  11. 自定义help和usage信息

  12. 可选的紧密集成的viper app

获取 cobra

通过以下命令即可直接获取程序包

go get -v github.com/spf13/cobra/cobra

获取包后,在包的目录下运行以下命令,即可完成 cobra 的安装

go install

运行 cobra

在命令行中输入 cobra 即可查看 cobra 的相关用法:

了解上面的说明即可实验,下面以一个cmd为例子:

  • cobra add pinfo : 创建一个叫 pinfogolang project,之后你的命令也就叫 pinfo
  • cobra add name: 对name 创建一个 sub-command,会直接生成一个 name.go 文件,
  • name.go 添肉

函数解析

Command 结构体

Command 结构体是 cobra 抽象出来的核心概念,它的实例表示一个命令或者是一个命令的子命令。下面的代码仅展示 Command 结构体中一些比较重要的字段:

type Command struct {
       
    // 用户通过指定 Run 函数来完成命令
    // PreRun 和 PostRun 则允许用户在 Run 运行的前后时机执行自定义代码
    PersistentPreRun func(cmd *Command, args []string)
    PreRun func(cmd *Command, args []string)
    Run func(cmd *Command, args []string)
    PostRun func(cmd *Command, args []string)
    PersistentPostRun func(cmd 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值