zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    SQL生成上百万条数据 及分页 长沙
    aspx或ashx里面多个方法 进行ajax调用 长沙
    C# IO操作,文件 文件夹 长沙
    Reperter多层嵌套 长沙
    解读WPF中事件
    WPF 神话之Binding对象二
    WPF 神话之Binding对象一
    明白就好
    导出Execl和读取Execl文件
    新加入博客园,嘿嘿
  • 原文地址:https://www.cnblogs.com/sunlong88/p/15177446.html
Copyright © 2011-2022 走看看