主要使用工具:
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) } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | D:\gocode1.14\code\go_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 |
本文来自博客园,作者:孙龙-程序员,转载请注明原文链接:https://www.cnblogs.com/sunlong88/p/15177446.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能