add final checks on option values

This commit is contained in:
2026-03-05 22:30:07 +01:00
parent b5f8d9eaab
commit 95fae40d5f
15 changed files with 219 additions and 37 deletions
+6 -2
View File
@@ -104,12 +104,16 @@ func (cli *CliParser) parseArg(arg string, index int) (skipNextArg bool, err err
}
for i, optName := range opts {
if opt := cli.findOptionByArg(dashes + optName); opt != nil {
var optValue string
if equalPresent && i == len(opts)-1 {
_, err = opt.parse(cli, index, &value)
_, optValue, err = opt.parse(cli, index, &value)
} else if i < len(opts)-1 && opt.requiresValue() {
err = errMissingOptionValue(dashes + optName)
} else {
skipNextArg, err = opt.parse(cli, index, nil)
skipNextArg, optValue, err = opt.parse(cli, index, nil)
}
if err == nil && i == len(opts)-1 {
err = opt.finalCheck(optValue)
}
} else {
err = errUnknownOption(dashes + optName)