Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit 2222d2c

Browse files
committed
Fix flags output as "unknown flags"
1 parent d973eec commit 2222d2c

File tree

2 files changed

+29
-6
lines changed

2 files changed

+29
-6
lines changed

main.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,16 @@ func run(rg server.RestConfigGetter) {
2525
exit(kubectl.Exec(v, os.Args[1:]...))
2626
}
2727

28+
type nopWriter struct {}
29+
30+
func (n nopWriter) Write(a[]byte) (int, error) {
31+
return len(a), nil
32+
}
33+
2834
func main() {
2935

30-
cmds := &cobra.Command{}
36+
cmds := &cobra.Command{
37+
}
3138

3239
flags := cmds.PersistentFlags()
3340
flags.SetNormalizeFunc(utilflag.WarnWordSepNormalizeFunc) // Warn for "_" flags
@@ -45,5 +52,6 @@ func main() {
4552
run(kubeConfigFlags)
4653
return nil
4754
})
55+
cmds.SetOutput(nopWriter{})
4856
cmds.Execute()
4957
}

main_test.go

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,34 @@ var envVarMagic = "this is magic"
2121
func testMain(t *testing.T, d string, args []string) {
2222
os.Args = args
2323
os.Setenv(envVarName, envVarMagic)
24-
fd, err := os.Create(filepath.Join(d, "logs"))
24+
stdout, err := os.Create(filepath.Join(d, "stdout"))
2525
assert.NoError(t, err)
26-
os.Stdout = fd
26+
defer stdout.Close()
27+
stderr, err := os.Create(filepath.Join(d, "stderr"))
28+
assert.NoError(t, err)
29+
defer stderr.Close()
30+
defer func(o, e *os.File) {
31+
os.Stdout = o
32+
os.Stderr = e
33+
}(os.Stdout, os.Stderr)
34+
os.Stdout = stdout
35+
os.Stderr = stderr
2736
exit = func(code int) {
2837
assert.Equal(t, 0, code)
2938
}
3039
main()
31-
assert.NoError(t, fd.Close())
32-
fd, err = os.Open(filepath.Join(d, "logs"))
40+
fd, err := os.Open(filepath.Join(d, "stdout"))
3341
assert.NoError(t, err)
42+
defer fd.Close()
3443
b, err := ioutil.ReadAll(fd)
3544
assert.NoError(t, err)
3645
assert.Equal(t, expectedOutput+"\n", string(b))
46+
fd, err = os.Open(filepath.Join(d, "stderr"))
47+
assert.NoError(t, err)
48+
defer fd.Close()
49+
b, err = ioutil.ReadAll(fd)
50+
assert.NoError(t, err)
51+
assert.Equal(t, "", string(b))
3752
}
3853

3954
func TestIntegration(t *testing.T) {
@@ -58,7 +73,7 @@ func TestIntegration(t *testing.T) {
5873
"platform": "linux/amd64"
5974
}`))
6075
}))
61-
testMain(t, d, []string{"test", "--server", s.URL, "--token", "test-token"})
76+
testMain(t, d, []string{"test", "--server", s.URL, "--token", "test-token", "--unknown", "-o", "something"})
6277
testMain(t, d, []string{"test", "--server", s.URL, "--token", "test-token", "--help"})
6378
}
6479

0 commit comments

Comments
 (0)