This commit is contained in:
+29
-7
@@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
|
||||
"git.trj.tw/golang/argparse"
|
||||
)
|
||||
@@ -14,6 +15,9 @@ func main() {
|
||||
"--port", "3000",
|
||||
"--float", "1.23",
|
||||
"-n", "name!!",
|
||||
"-i", "item1",
|
||||
"-i", "item2",
|
||||
"-h",
|
||||
}
|
||||
|
||||
p := argparse.New()
|
||||
@@ -23,15 +27,33 @@ func main() {
|
||||
var port int
|
||||
var floatVal float64
|
||||
var name *string
|
||||
var sarr []string
|
||||
var missReq int
|
||||
_ = missReq
|
||||
|
||||
p.BoolVar(&versionFlag, "v", "version")
|
||||
p.StringVar(&configPath, "f", "config")
|
||||
p.IntVar(&port, "p", "port")
|
||||
p.FloatVar(&floatVal, "ff", "float")
|
||||
p.BoolVar(&versionFlag, "v", "version", nil)
|
||||
p.StringVar(&configPath, "f", "config", nil)
|
||||
p.IntVar(&port, "p", "port", nil)
|
||||
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.Help("h", "help")
|
||||
|
||||
name = p.String("n", "name")
|
||||
name = p.String("n", "name", nil)
|
||||
|
||||
p.Parse(opts)
|
||||
err := p.Parse(opts)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
fmt.Printf("Config: %s\nVersionFlag: %v\nPort: %d\nFloatVal: %f\nName: %s\n", configPath, versionFlag, port, floatVal, *name)
|
||||
fmt.Printf(
|
||||
"Config: %s\nVersionFlag: %v\nPort: %d\nFloatVal: %f\nName: %s\nItems: %v\n",
|
||||
configPath,
|
||||
versionFlag,
|
||||
port,
|
||||
floatVal,
|
||||
*name,
|
||||
sarr,
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user