WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 303159d

Browse files
committed
just parse recognizable flag
1 parent 0cd2584 commit 303159d

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

flag.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -85,35 +85,33 @@ func (f *FlagLoader) Load(s interface{}) error {
8585
args = f.Args
8686
}
8787

88-
// support unknown flag
89-
var newArgs []string
88+
// just parse recognizable flag
89+
var recognizableArgs []string
9090
type BoolFlag interface {
9191
IsBoolFlag() bool
9292
}
9393
for i := 0; i < len(args); i++ {
9494
if strings.HasPrefix(args[i], "-") {
9595
flagName := strings.TrimLeft(args[i], "-")
9696
if flagName == "help" || flagName == "h" {
97-
newArgs = append(newArgs, args[i])
97+
recognizableArgs = append(recognizableArgs, args[i])
9898
continue
9999
}
100-
cmdlineFlag := f.flagSet.Lookup(flagName)
101-
if cmdlineFlag != nil {
102-
newArgs = append(newArgs, args[i])
103-
if bf, ok := cmdlineFlag.Value.(BoolFlag); ok && bf.IsBoolFlag() {
100+
recognizableFlag := f.flagSet.Lookup(flagName)
101+
if recognizableFlag != nil {
102+
recognizableArgs = append(recognizableArgs, args[i])
103+
if bf, ok := recognizableFlag.Value.(BoolFlag); ok && bf.IsBoolFlag() {
104104
continue
105105
}
106106
i++
107107
if i < len(args) {
108-
newArgs = append(newArgs, args[i])
108+
recognizableArgs = append(recognizableArgs, args[i])
109109
}
110110
}
111111
}
112112
}
113113

114-
fmt.Println(newArgs)
115-
116-
return flagSet.Parse(newArgs)
114+
return flagSet.Parse(recognizableArgs)
117115
}
118116

119117
func filterArgs(args []string) []string {

0 commit comments

Comments
 (0)