Support built-in shorthand flags (#1925)

This commit is contained in:
anqiansong
2022-05-23 09:13:12 +08:00
committed by GitHub
parent 58787746db
commit f1fdd55b38

View File

@@ -69,6 +69,8 @@ func supportGoStdFlag(args []string) []string {
flagValue = flagExpr[assignIndex:] flagValue = flagExpr[assignIndex:]
} }
if !isBuiltin(flagName) {
// The method Flag can only match the user custom flags.
f := parentCmd.Flag(flagName) f := parentCmd.Flag(flagName)
if f == nil { if f == nil {
continue continue
@@ -76,8 +78,9 @@ func supportGoStdFlag(args []string) []string {
if f.Shorthand == flagName { if f.Shorthand == flagName {
continue continue
} }
}
goStyleFlag := doubleDash + f.Name goStyleFlag := doubleDash + flagName
if assignIndex > 0 { if assignIndex > 0 {
goStyleFlag += flagValue goStyleFlag += flagValue
} }
@@ -87,8 +90,13 @@ func supportGoStdFlag(args []string) []string {
return copyArgs return copyArgs
} }
func isBuiltin(name string) bool {
return name == "version" || name == "help"
}
func init() { func init() {
rootCmd.Version = fmt.Sprintf("%s %s/%s", version.BuildVersion, rootCmd.Version = fmt.Sprintf(
"%s %s/%s", version.BuildVersion,
runtime.GOOS, runtime.GOARCH) runtime.GOOS, runtime.GOARCH)
rootCmd.AddCommand(api.Cmd) rootCmd.AddCommand(api.Cmd)
rootCmd.AddCommand(bug.Cmd) rootCmd.AddCommand(bug.Cmd)