package main import ( "context" "fmt" "log" "os" "strings" "github.com/urfave/cli/v3" ) func main() { cmd := &cli.Command{ Flags: []cli.Flag{ &cli.StringFlag{ Name: "lang", Value: "en", Usage: "language used for the greeting", }, &cli.IntFlag{ Name: "times", Value: 1, Usage: "number of times to repeat word for hello", }, }, Usage: "top level application", Action: func(ctx context.Context, cmd *cli.Command) error { name := "Brandon" if cmd.NArg() > 0 { name = cmd.Args().First() } dir := map[string]string{ "es": "Hola", "en": "Hello", } greeting, ok := dir[cmd.String("lang")] if !ok { greeting = "???" } fmt.Printf("%s, %s\n", strings.Repeat(greeting, cmd.Int("times")), name) return nil }, } if err := cmd.Run(context.Background(), os.Args); err != nil { log.Fatal(err) } }