2024-10-21 23:21:46 +08:00
|
|
|
# command
|
|
|
|
|
2024-11-16 15:19:59 +08:00
|
|
|
utils for command line app
|
|
|
|
|
|
|
|
Provide two style for command line args parse:
|
|
|
|
|
|
|
|
- use struct field tag
|
|
|
|
- use command
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
use struct field tag
|
|
|
|
|
|
|
|
```go
|
|
|
|
type targs struct {
|
|
|
|
Test string `flag_default:"test" flag_usage:"this is test"`
|
|
|
|
TestBool bool `flag_short:"b"`
|
|
|
|
TestInt int
|
|
|
|
}
|
|
|
|
sargs := &targs{}
|
|
|
|
v, _ := NewFVSet(sargs)
|
|
|
|
v.Usage()
|
|
|
|
err := Parse([]string{"--test", "test", "--test-bool", "--test-int", "1"}, v)
|
|
|
|
```
|
|
|
|
|
|
|
|
use command style
|
|
|
|
|
|
|
|
```go
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"git.pyer.club/kingecg/command"
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
var cmd = command.NewCommand("test", "test command")
|
|
|
|
cmd.AddArg("arg1", "a", "arg1 description", "default value")
|
|
|
|
cmd.AddArg("arg2", "b", "arg2 description", "default value")
|
|
|
|
cmd.AddSubCommand("sub1", "sub1 description")
|
|
|
|
cmd.Parse(os.Args[1:])
|
|
|
|
fmt.Println(cmd.GetGlobalOptions())
|
|
|
|
}
|
|
|
|
|
|
|
|
```
|