Skip to content

Commit 85b30f8

Browse files
authoredJan 6, 2022
Improve handling of cmdline errors (#91)
Improve handling of cmdline errors
1 parent 607c90a commit 85b30f8

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed
 

‎cmd/kubeconform/main.go

+15-7
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,23 @@ func processResults(cancel context.CancelFunc, o output.Output, validationResult
4848

4949
func realMain() int {
5050
cfg, out, err := config.FromFlags(os.Args[0], os.Args[1:])
51-
if cfg.Help {
52-
return 0
53-
} else if cfg.Version {
51+
if out != "" {
52+
o := os.Stderr
53+
errCode := 1
54+
if cfg.Help {
55+
o = os.Stdout
56+
errCode = 0
57+
}
58+
fmt.Fprintln(o, out)
59+
return errCode
60+
}
61+
62+
if cfg.Version {
5463
fmt.Println(version)
5564
return 0
56-
} else if out != "" {
57-
fmt.Println(out)
58-
return 1
59-
} else if err != nil {
65+
}
66+
67+
if err != nil {
6068
fmt.Fprintf(os.Stderr, "failed parsing command line: %s\n", err.Error())
6169
return 1
6270
}

‎pkg/config/config.go

+1-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"bytes"
55
"flag"
66
"fmt"
7-
"os"
87
"strings"
98
)
109

@@ -82,9 +81,7 @@ func FromFlags(progName string, args []string) (Config, string, error) {
8281
flags.BoolVar(&c.Help, "h", false, "show help information")
8382
flags.BoolVar(&c.Version, "v", false, "show version information")
8483
flags.Usage = func() {
85-
fmt.Fprintf(os.Stderr, "Usage: %s [OPTION]... [FILE OR FOLDER]...\n", progName)
86-
87-
flags.SetOutput(os.Stderr)
84+
fmt.Fprintf(&buf, "Usage: %s [OPTION]... [FILE OR FOLDER]...\n", progName)
8885
flags.PrintDefaults()
8986
}
9087

0 commit comments

Comments
 (0)
Please sign in to comment.