mirror of
https://github.com/grafana/grafana.git
synced 2025-02-20 11:48:34 -06:00
32 lines
816 B
Go
32 lines
816 B
Go
package main
|
|
|
|
import "github.com/urfave/cli/v2"
|
|
|
|
// ArgCountWrapper will cause the action to fail if there were not exactly `num` args provided.
|
|
func ArgCountWrapper(num int, action cli.ActionFunc) cli.ActionFunc {
|
|
return func(ctx *cli.Context) error {
|
|
if ctx.NArg() != num {
|
|
if err := cli.ShowSubcommandHelp(ctx); err != nil {
|
|
return cli.Exit(err.Error(), 1)
|
|
}
|
|
return cli.Exit("", 1)
|
|
}
|
|
|
|
return action(ctx)
|
|
}
|
|
}
|
|
|
|
// ArgCountWrapper will cause the action to fail if there were more than `num` args provided.
|
|
func MaxArgCountWrapper(max int, action cli.ActionFunc) cli.ActionFunc {
|
|
return func(ctx *cli.Context) error {
|
|
if ctx.NArg() > max {
|
|
if err := cli.ShowSubcommandHelp(ctx); err != nil {
|
|
return cli.Exit(err.Error(), 1)
|
|
}
|
|
return cli.Exit("", 1)
|
|
}
|
|
|
|
return action(ctx)
|
|
}
|
|
}
|