Skip to content

Commit c49071d

Browse files
committed
1、解决子命令值与参数值可能存在的情况
使用--进行分隔,--后的为参数值
1 parent 2de186c commit c49071d

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

commands.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,11 @@ func (c *Commands) parse(
177177
args = args[1:]
178178
cmds = append(cmds, cmd)
179179
cur = &cmd.commands
180-
180+
// 使用--进行分隔。解决参数值可能与子命令字面量一致的问题
181+
var bDoubleBar = false
182+
if len(args) > 0 && args[0] == "--" {
183+
bDoubleBar = true
184+
}
181185
// Parse the command flags.
182186
fg := make(FlagMap)
183187
args, err = cmd.flags.parse(args, fg)
@@ -188,6 +192,11 @@ func (c *Commands) parse(
188192
if !skipFlagMaps {
189193
fgs = append(fgs, fg)
190194
}
195+
196+
// 使用--进行分隔。解决参数值可能与子命令字面量一致的问题
197+
if len(args) > 0 && bDoubleBar {
198+
break
199+
}
191200
}
192201

193202
if !skipFlagMaps {

0 commit comments

Comments
 (0)