• golang代码生成器


    主要使用工具:

    github.com/urfave/cli


    初识cli工具包

    package main
    
    import (
        "go_cli/until"
        "log"
        "os"
    
        "github.com/urfave/cli"
    )
    
    func main() {
    
        var opt until.Option
        var importFiles cli.StringSlice
        var protoPaths cli.StringSlice
    
        app := cli.NewApp()
        app.Version = "2.0.1"
    
        app.Flags = []cli.Flag{
            cli.StringFlag{
                Name:        "f",
                Usage:       "idl filename, May be specified multiple times",
                Required:    true,
                Destination: &opt.Proto3Filename,
            },
            cli.BoolFlag{
                Name:        "c",
                Usage:       "generate grpc client code",
                Destination: &opt.GenClientCode,
            },
            cli.BoolFlag{
                Name:        "s",
                Usage:       "generate grpc server code",
                Destination: &opt.GenServerCode,
            },
            cli.StringFlag{
                Name:        "p",
                Value:       "",
                Usage:       "prefix of package",
                Destination: &opt.Prefix,
            },
            cli.StringSliceFlag{
                Name:  "i",
                Usage: "import proto file, Specify the proto file in which for proto file imports.May be specified multiple times",
                Value: &importFiles,
            },
            cli.StringSliceFlag{
                Name:  "proto_path",
                Usage: "Specify the directory in which to search for imports.  May be specified multiple times",
                Value: &protoPaths,
            },
        }
    
        app.Action = func(c *cli.Context) error {
    
    
            return nil
        }
    
        err := app.Run(os.Args)
        if err != nil {
            log.Fatal(err)
        }
    }
    D:gocode1.14codego_cli>go run main.go --help
    NAME:
       main.exe - A new cli application
    
    USAGE:
       main.exe [global options] command [command options] [arguments...]
    
    VERSION:
       2.0.1
    
    COMMANDS:
       help, h  Shows a list of commands or help for one command
    
    GLOBAL OPTIONS:
       -f value            idl filename, May be specified multiple times
       -c                  generate grpc client code
       -s                  generate grpc server code
       -p value            prefix of package
       -i value            import proto file, Specify the proto file in which for proto file imports.May be specified multiple times
       --proto_path value  Specify the directory in which to search for imports.  May be specified multiple times
       --help, -h          show help
       --version, -v       print the version
    

      

  • 相关阅读:
    Python3.x和Python2.x的区别
    python 列表 元组 字典
    Wireshark TCP报文到达确认(ACK)机制
    Wireshark Tcp三次握手
    Python Vim配置 Win7x64
    Workstation guest fails to restart or resume
    python 枚举目录下所有子目录和文件,输出列表
    Python按行读文件 高级
    python 注释
    十一、设备初始化(ADK4.0)
  • 原文地址:https://www.cnblogs.com/sunlong88/p/15177446.html
Copyright © 2020-2023  润新知