refactor: improved init flow in main

This commit is contained in:
yusing
2025-03-28 06:00:08 +08:00
parent fd223c7542
commit 1e39d0b186
3 changed files with 58 additions and 49 deletions

29
pkg/args.go Normal file
View File

@@ -0,0 +1,29 @@
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
}