mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-19 20:32:35 +02:00
29 lines
450 B
Go
29 lines
450 B
Go
package pkg
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
)
|
|
|
|
type (
|
|
Args struct {
|
|
Command string
|
|
Args []string
|
|
}
|
|
CommandValidator interface {
|
|
IsCommandValid(cmd string) bool
|
|
}
|
|
)
|
|
|
|
func GetArgs(validator CommandValidator) Args {
|
|
var args Args
|
|
flag.Parse()
|
|
args.Command = flag.Arg(0)
|
|
if !validator.IsCommandValid(args.Command) {
|
|
log.Fatalf("invalid command: %s", args.Command)
|
|
}
|
|
if len(flag.Args()) > 1 {
|
|
args.Args = flag.Args()[1:]
|
|
}
|
|
return args
|
|
}
|