fix parser required missing error after check help fun
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
b893db5e14
commit
ccfa5d3cb0
19
argparse.go
19
argparse.go
@ -99,7 +99,6 @@ func (p *Parser) Parse(a []string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// in loop func
|
||||
func (p *Parser) parse(args *[]string) error {
|
||||
if p.parsed {
|
||||
return nil
|
||||
@ -118,7 +117,17 @@ func (p *Parser) parse(args *[]string) error {
|
||||
if p.showHelp == true {
|
||||
p.printHelp()
|
||||
}
|
||||
return nil
|
||||
|
||||
return p.checkRequired()
|
||||
}
|
||||
|
||||
func (p *Parser) checkRequired() (err error) {
|
||||
for _, v := range p.args {
|
||||
if v.opts != nil && v.opts.Require && !v.parsed {
|
||||
return fmt.Errorf("[%s] is required", v.name())
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (p *Parser) parseArguemtns(args *[]string) error {
|
||||
@ -151,9 +160,9 @@ func (p *Parser) parseArguemtns(args *[]string) error {
|
||||
continue
|
||||
}
|
||||
}
|
||||
if oarg.opts != nil && oarg.opts.Require && !oarg.parsed {
|
||||
return fmt.Errorf("[%s] is required", oarg.name())
|
||||
}
|
||||
// if oarg.opts != nil && oarg.opts.Require && !oarg.parsed {
|
||||
// return fmt.Errorf("[%s] is required", oarg.name())
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
@ -10,13 +10,13 @@ import (
|
||||
func main() {
|
||||
fmt.Println("argparse example")
|
||||
opts := []string{
|
||||
"-f", "/config.yml",
|
||||
"-v",
|
||||
"--port", "3000",
|
||||
"--float", "1.23",
|
||||
"-n", "name!!",
|
||||
"-i", "item1",
|
||||
"-i", "item2",
|
||||
// "-f", "/config.yml",
|
||||
// "-v",
|
||||
// "--port", "3000",
|
||||
// "--float", "1.23",
|
||||
// "-n", "name!!",
|
||||
// "-i", "item1",
|
||||
// "-i", "item2",
|
||||
"-h",
|
||||
}
|
||||
|
||||
@ -37,7 +37,7 @@ func main() {
|
||||
p.FloatVar(&floatVal, "ff", "float", nil)
|
||||
p.StringSliceVar(&sarr, "i", "item", nil)
|
||||
// uncomment to test required arg missing
|
||||
// p.IntVar(&missReq, "m", "miss", &argparse.Option{Require: true})
|
||||
p.IntVar(&missReq, "m", "miss", &argparse.Option{Require: true})
|
||||
p.Help("h", "help")
|
||||
|
||||
name = p.String("n", "name", nil)
|
||||
|
Loading…
Reference in New Issue
Block a user