From e3ca1796cea640755d5e21e64f93bc95e2797db2 Mon Sep 17 00:00:00 2001 From: Julien Duchesne Date: Mon, 13 Mar 2023 18:26:30 -0400 Subject: [PATCH] Fix-up cmd args Closes https://github.com/grafana/tanka/issues/821 Also uses built-in cli validators rather than inline functions --- cmd/tk/env.go | 9 ++------- cmd/tk/export.go | 7 +------ cmd/tk/fmt.go | 8 +------- cmd/tk/lint.go | 9 +-------- 4 files changed, 5 insertions(+), 28 deletions(-) diff --git a/cmd/tk/env.go b/cmd/tk/env.go index b91da19a3..ae4db25e2 100644 --- a/cmd/tk/env.go +++ b/cmd/tk/env.go @@ -47,7 +47,7 @@ var kubectlContexts = cli.PredictFunc( func envSetCmd() *cli.Command { cmd := &cli.Command{ - Use: "set", + Use: "set ", Short: "update properties of an environment", Args: workflowArgs, Predictors: complete.Flags{ @@ -234,12 +234,7 @@ func envRemoveCmd() *cli.Command { func envListCmd() *cli.Command { args := workflowArgs - args.Validator = cli.ValidateFunc(func(args []string) error { - if len(args) > 1 { - return fmt.Errorf("expects at most 1 arg, received %v", len(args)) - } - return nil - }) + args.Validator = cli.ArgsRange(0, 1) cmd := &cli.Command{ Use: "list []", diff --git a/cmd/tk/export.go b/cmd/tk/export.go index 0daf5d408..0b68fc92b 100644 --- a/cmd/tk/export.go +++ b/cmd/tk/export.go @@ -15,12 +15,7 @@ import ( func exportCmd() *cli.Command { args := workflowArgs - args.Validator = cli.ValidateFunc(func(args []string) error { - if len(args) < 2 { - return fmt.Errorf("expects at least 2 args, received %v", len(args)) - } - return nil - }) + args.Validator = cli.ArgsMin(2) cmd := &cli.Command{ Use: "export [...]", diff --git a/cmd/tk/fmt.go b/cmd/tk/fmt.go index dbfa71802..b736c590e 100644 --- a/cmd/tk/fmt.go +++ b/cmd/tk/fmt.go @@ -1,7 +1,6 @@ package main import ( - "errors" "fmt" "io" "os" @@ -21,12 +20,7 @@ func fmtCmd() *cli.Command { Use: "fmt ", Short: "format Jsonnet code", Args: cli.Args{ - Validator: cli.ValidateFunc(func(args []string) error { - if len(args) == 0 { - return errors.New("at least one file or directory is required") - } - return nil - }), + Validator: cli.ArgsMin(1), Predictor: complete.PredictFiles("*.*sonnet"), }, } diff --git a/cmd/tk/lint.go b/cmd/tk/lint.go index 6a1291b46..9bb6edf4c 100644 --- a/cmd/tk/lint.go +++ b/cmd/tk/lint.go @@ -1,8 +1,6 @@ package main import ( - "errors" - "github.com/go-clix/cli" "github.com/gobwas/glob" "github.com/posener/complete" @@ -15,12 +13,7 @@ func lintCmd() *cli.Command { Use: "lint ", Short: "lint Jsonnet code", Args: cli.Args{ - Validator: cli.ValidateFunc(func(args []string) error { - if len(args) == 0 { - return errors.New("at least one file or directory is required") - } - return nil - }), + Validator: cli.ArgsMin(1), Predictor: complete.PredictFiles("*.*sonnet"), }, }