From 85b30f8c2a496629ee95295e28e10b8652e697f4 Mon Sep 17 00:00:00 2001 From: Yann Hamon Date: Thu, 6 Jan 2022 12:39:24 +0100 Subject: [PATCH] Improve handling of cmdline errors (#91) Improve handling of cmdline errors --- cmd/kubeconform/main.go | 22 +++++++++++++++------- pkg/config/config.go | 5 +---- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/cmd/kubeconform/main.go b/cmd/kubeconform/main.go index af0cbc6..2e7001f 100644 --- a/cmd/kubeconform/main.go +++ b/cmd/kubeconform/main.go @@ -48,15 +48,23 @@ func processResults(cancel context.CancelFunc, o output.Output, validationResult func realMain() int { cfg, out, err := config.FromFlags(os.Args[0], os.Args[1:]) - if cfg.Help { - return 0 - } else if cfg.Version { + if out != "" { + o := os.Stderr + errCode := 1 + if cfg.Help { + o = os.Stdout + errCode = 0 + } + fmt.Fprintln(o, out) + return errCode + } + + if cfg.Version { fmt.Println(version) return 0 - } else if out != "" { - fmt.Println(out) - return 1 - } else if err != nil { + } + + if err != nil { fmt.Fprintf(os.Stderr, "failed parsing command line: %s\n", err.Error()) return 1 } diff --git a/pkg/config/config.go b/pkg/config/config.go index 22cb76d..02a4dac 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -4,7 +4,6 @@ import ( "bytes" "flag" "fmt" - "os" "strings" ) @@ -82,9 +81,7 @@ func FromFlags(progName string, args []string) (Config, string, error) { flags.BoolVar(&c.Help, "h", false, "show help information") flags.BoolVar(&c.Version, "v", false, "show version information") flags.Usage = func() { - fmt.Fprintf(os.Stderr, "Usage: %s [OPTION]... [FILE OR FOLDER]...\n", progName) - - flags.SetOutput(os.Stderr) + fmt.Fprintf(&buf, "Usage: %s [OPTION]... [FILE OR FOLDER]...\n", progName) flags.PrintDefaults() }