Merge pull request #82423 from sallyom/kubectl-flagerror

kubectl: remove usage info from bad flag msg, only print help tip

Kubernetes-commit: ea4f7853bb24a6c3fe7aeeee1aa89f8273c8db64
This commit is contained in:
Kubernetes Publisher 2019-10-08 15:42:03 -07:00
commit 0c7708bf1a
4 changed files with 25 additions and 12 deletions

6
Godeps/Godeps.json generated
View File

@ -592,11 +592,11 @@
},
{
"ImportPath": "k8s.io/cli-runtime",
"Rev": "4d28aef60981"
"Rev": "509327b2d966"
},
{
"ImportPath": "k8s.io/client-go",
"Rev": "c918cd02a1a3"
"Rev": "1210218b4a26"
},
{
"ImportPath": "k8s.io/code-generator",
@ -604,7 +604,7 @@
},
{
"ImportPath": "k8s.io/component-base",
"Rev": "f5216b94ab44"
"Rev": "86c6082c6a20"
},
{
"ImportPath": "k8s.io/gengo",

12
go.mod
View File

@ -37,9 +37,9 @@ require (
gotest.tools v2.2.0+incompatible // indirect
k8s.io/api v0.0.0-20191005115622-2e41325d9e4b
k8s.io/apimachinery v0.0.0-20191006235458-f9f2f3f8ab02
k8s.io/cli-runtime v0.0.0-20191005121332-4d28aef60981
k8s.io/client-go v0.0.0-20191006235818-c918cd02a1a3
k8s.io/component-base v0.0.0-20191005120246-f5216b94ab44
k8s.io/cli-runtime v0.0.0-20191008080826-509327b2d966
k8s.io/client-go v0.0.0-20191008115822-1210218b4a26
k8s.io/component-base v0.0.0-20191008075918-86c6082c6a20
k8s.io/klog v1.0.0
k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf
k8s.io/metrics v0.0.0-20191005121233-894d8cc77c5e
@ -58,9 +58,9 @@ replace (
golang.org/x/time => golang.org/x/time v0.0.0-20161028155119-f51c12702a4d
k8s.io/api => k8s.io/api v0.0.0-20191005115622-2e41325d9e4b
k8s.io/apimachinery => k8s.io/apimachinery v0.0.0-20191006235458-f9f2f3f8ab02
k8s.io/cli-runtime => k8s.io/cli-runtime v0.0.0-20191005121332-4d28aef60981
k8s.io/client-go => k8s.io/client-go v0.0.0-20191006235818-c918cd02a1a3
k8s.io/cli-runtime => k8s.io/cli-runtime v0.0.0-20191008080826-509327b2d966
k8s.io/client-go => k8s.io/client-go v0.0.0-20191008115822-1210218b4a26
k8s.io/code-generator => k8s.io/code-generator v0.0.0-20191003035328-700b1226c0bd
k8s.io/component-base => k8s.io/component-base v0.0.0-20191005120246-f5216b94ab44
k8s.io/component-base => k8s.io/component-base v0.0.0-20191008075918-86c6082c6a20
k8s.io/metrics => k8s.io/metrics v0.0.0-20191005121233-894d8cc77c5e
)

6
go.sum
View File

@ -292,10 +292,10 @@ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWh
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
k8s.io/api v0.0.0-20191005115622-2e41325d9e4b/go.mod h1:V9fqJJO3eGaWUKb9e6wH3fx7JXl1IaSC1VhSLk7GJjA=
k8s.io/apimachinery v0.0.0-20191006235458-f9f2f3f8ab02/go.mod h1:92mWDd8Ji2sw2157KIgino5wCxffA8KSvhW2oY4ypdw=
k8s.io/cli-runtime v0.0.0-20191005121332-4d28aef60981/go.mod h1:CICkH37E5f4cPVqJ/ZcIDn/kdvjJHq8sacFCdCyKHtU=
k8s.io/client-go v0.0.0-20191006235818-c918cd02a1a3/go.mod h1:y9Rvsae8RfW0HpclmE1lCx4wUxrLDRhXv9gh8SWYhvc=
k8s.io/cli-runtime v0.0.0-20191008080826-509327b2d966/go.mod h1:+x62LyqVaCTt09BMn1pTlv+hopotj6eDI6xDVQ7V3rw=
k8s.io/client-go v0.0.0-20191008115822-1210218b4a26/go.mod h1:Ej3Cs9QxIg8+T2Y4v/Bh8DVv/JNYZrix9UwRQDG49ck=
k8s.io/code-generator v0.0.0-20191003035328-700b1226c0bd/go.mod h1:HC9p4y3SBN+txSs8x57qmNPXFZ/CxdCHiDTNnocCSEw=
k8s.io/component-base v0.0.0-20191005120246-f5216b94ab44/go.mod h1:vczWDSFYXxd5GBHBZnq89a2XZiLBK59t2JpoadwKV8o=
k8s.io/component-base v0.0.0-20191008075918-86c6082c6a20/go.mod h1:igCPGAZkiLboFObJH55AZAiStdoMZRsCN14ENO28iGQ=
k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0=
k8s.io/klog v0.0.0-20181102134211-b9b56d5dfc92/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk=

View File

@ -44,6 +44,7 @@ func ActsAsRootCommand(cmd *cobra.Command, filters []string, groups ...CommandGr
CommandGroups: groups,
Filtered: filters,
}
cmd.SetFlagErrorFunc(templater.FlagErrorFunc())
cmd.SetUsageFunc(templater.UsageFunc())
cmd.SetHelpFunc(templater.HelpFunc())
return templater
@ -66,6 +67,18 @@ type templater struct {
Filtered []string
}
func (templater *templater) FlagErrorFunc(exposedFlags ...string) func(*cobra.Command, error) error {
return func(c *cobra.Command, err error) error {
c.SilenceUsage = true
switch c.CalledAs() {
case "options":
return fmt.Errorf("%s\nRun '%s' without flags.", err, c.CommandPath())
default:
return fmt.Errorf("%s\nSee '%s --help' for usage.", err, c.CommandPath())
}
}
}
func (templater *templater) ExposeFlags(cmd *cobra.Command, flags ...string) FlagExposer {
cmd.SetUsageFunc(templater.UsageFunc(flags...))
return templater