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 }