fix: cannot remove --mode=counter flag
This commit is contained in:
parent
64504ae67b
commit
a8bddd3a32
@ -44,7 +44,7 @@ func BuildCmdArgsParse(cmd *cobra.Command, args []string) []string {
|
|||||||
|
|
||||||
// 删除 cobra 定义的 flag
|
// 删除 cobra 定义的 flag
|
||||||
allFlagSets.Visit(func(f *pflag.Flag) {
|
allFlagSets.Visit(func(f *pflag.Flag) {
|
||||||
args = findAndDelGocFlag(args, f.Name)
|
args = findAndDelGocFlag(args, f.Name, f.Value.String())
|
||||||
})
|
})
|
||||||
|
|
||||||
// 然后解析 go 的 flag
|
// 然后解析 go 的 flag
|
||||||
@ -82,17 +82,21 @@ func BuildCmdArgsParse(cmd *cobra.Command, args []string) []string {
|
|||||||
return goFlagSets.Args()
|
return goFlagSets.Args()
|
||||||
}
|
}
|
||||||
|
|
||||||
func findAndDelGocFlag(a []string, x string) []string {
|
func findAndDelGocFlag(a []string, x string, v string) []string {
|
||||||
new := make([]string, 0, len(a))
|
new := make([]string, 0, len(a))
|
||||||
x = "--" + x
|
x = "--" + x
|
||||||
|
x_v := x + "=" + v
|
||||||
for i := 0; i < len(a); i++ {
|
for i := 0; i < len(a); i++ {
|
||||||
if a[i] == "--debug" {
|
if a[i] == "--debug" {
|
||||||
// debug 是 bool,就一个元素
|
// debug 是 bool,就一个元素
|
||||||
continue
|
continue
|
||||||
} else if a[i] == x {
|
} else if a[i] == x {
|
||||||
// 其他 goc flag 都是两个元素
|
// 有 goc flag 长这样 --mode watch
|
||||||
i++
|
i++
|
||||||
continue
|
continue
|
||||||
|
} else if a[i] == x_v {
|
||||||
|
// 有 goc flag 长这样 --mode=watch
|
||||||
|
continue
|
||||||
} else {
|
} else {
|
||||||
// 剩下的是 go flag
|
// 剩下的是 go flag
|
||||||
new = append(new, a[i])
|
new = append(new, a[i])
|
||||||
|
Loading…
Reference in New Issue
Block a user