zoukankan      html  css  js  c++  java
  • cobra note

    package cmd
    
    import (
    	"log"
    
    	"github.com/spf13/cobra"
    	flag "github.com/spf13/pflag"
    )
    
    var Source string
    
    // 这里初始化了flag 环境
    var cliName = flag.StringP("name", "n", "Nick", "Input Your Name")
    var cliAuthor = flag.StringP("author", "a", "nameOfAuthor", "Input Author Name")
    var Verbose bool
    
    var versionCmd = &cobra.Command{
    	Use:   "version",
    	Short: "A brief description of your command",
    	Long: `A longer description that spans multiple lines and likely contains examples
    and usage of using your command. For example:
    
    Cobra is a CLI library for Go that empowers applications.
    This application is a tool to generate the needed files
    to quickly create a Cobra application.`,
    	Run: func(cmd *cobra.Command, args []string) {
    		log.Println("version 1.0")
    		log.Println("Source===>", Source)
    
    		// 这里需要提前准备上面的这两行代码
    		// cmd.Flag("author") 这里有Lookup
    		// var cliName = flag.StringP("name", "n", "Nick", "Input Your Name")
    		// var cliAuthor = flag.StringP("author", "a", "nameOfAuthor", "Input Author Name")
    		log.Println("cobra.command get cliName===>", cmd.Flag("author").Value)
    		log.Println("cobra.command get cliAuthor===>", cmd.Flag("name").Value)
    
    		log.Println("cliName===>", *cliName)
    		log.Println("cliAuthor===>", *cliAuthor)
    		log.Println(args)
    	},
    }
    
    func init() {
    	rootCmd.AddCommand(versionCmd)
    	rootCmd.PersistentFlags().BoolVarP(&Verbose, "verbose", "v", false, "全局版本")
    	versionCmd.Flags().StringVarP(&Source, "source", "s", "", "读取文件路径")
    }
    

    输出...,命令行参数[ag1 ag2 xx]和选项参数-s /tmp都能传进来用

    ... 找个能入门的...

    了解cobra 先看看 pflag

    main.go

    package main
    
    import (
    	"cobhu/cmd"
    )
    
    func main() {
    	cmd.Execute()
    }
    

    version.go

  • 相关阅读:
    程序员的成长阶梯和级别[转]
    【转】教你如何迅速秒杀99%的海量数据处理面试题
    【转】探索C#之布隆过滤器(Bloom filter)
    基于.NET平台常用的框架整理 [转]
    使用 Async 和 Await 的异步编程(C# 和 Visual Basic)[msdn.microsoft.com]
    使用异步编程
    Node.js Web框架收集
    js闭包的定义与应用
    null 与 undefined 区别
    git 基本操作—笔记
  • 原文地址:https://www.cnblogs.com/eiguleo/p/15163196.html
Copyright © 2011-2022 走看看