项目地址:
https://github.com/urfave/cli
用法:
代码:
package main import ( "fmt" "github.com/urfave/cli/v2" "log" "os" ) func main() { var name string app := &cli.App{ Name: "命令名称", Usage: "用法", Version: "v1.0", Description: "描述", Commands: []*cli.Command{ { Name: "command-a", Aliases: []string{"ca"}, Usage: "command-a 用法说明", Flags: []cli.Flag{ &cli.StringFlag{ Name: "flag-a", Aliases: []string{"fa"}, Value: "default-flag-a-value", Usage: "flag-a 用法", Destination: &name, Required: true, }, }, Action: func(ctx *cli.Context) error { fmt.Println("flag: ", ctx.String("flag-a")) fmt.Println("command: ", ctx.Args().First()) return nil }, }, { Name: "command-b", Aliases: []string{"cb"}, Usage: "command-b 用法说明", Flags: []cli.Flag{ &cli.StringFlag{ Name: "flag-b", Aliases: []string{"fb"}, Value: "default-flag-b-value", Usage: "flag-b 用法", Destination: &name, Required: true, }, }, Subcommands: []*cli.Command{ { Name: "command-b-a", Aliases: []string{"cba"}, Usage: "command-b-a 用法说明", Action: func(ctx *cli.Context) error { fmt.Println("flag: ", ctx.String("flag-b")) fmt.Println("command: ", ctx.Args().First()) return nil }, }, { Name: "command-b-b", Aliases: []string{"cbb"}, Usage: "command-b-b 用法说明", Action: func(ctx *cli.Context) error { fmt.Println("flag: ", ctx.String("flag-b")) fmt.Println("command: ", ctx.Args().First()) return nil }, }, }, }, }, } err := app.Run(os.Args) if err != nil { log.Fatal(err) } }
测试:
go run test.go ca -fa faValue caValue go run test.go cb -fb fbValue cba cbaValue go run test.go cb -fb fbValue cbb cbbValue
文档更新时间: 2024-04-20 10:57 作者:lee