package common import ( "flag" "fmt" "log" ) type Args struct { Command string } const ( CommandStart = "" CommandSetup = "setup" CommandValidate = "validate" CommandListConfigs = "ls-config" CommandListRoutes = "ls-routes" CommandListIcons = "ls-icons" CommandReload = "reload" CommandDebugListEntries = "debug-ls-entries" CommandDebugListProviders = "debug-ls-providers" CommandDebugListMTrace = "debug-ls-mtrace" ) var ValidCommands = []string{ CommandStart, CommandSetup, CommandValidate, CommandListConfigs, CommandListRoutes, CommandListIcons, CommandReload, CommandDebugListEntries, CommandDebugListProviders, CommandDebugListMTrace, } func GetArgs() Args { var args Args flag.Parse() args.Command = flag.Arg(0) if err := validateArg(args.Command); err != nil { log.Fatalf("invalid command: %s", err) } return args } func validateArg(arg string) error { for _, v := range ValidCommands { if arg == v { return nil } } return fmt.Errorf("invalid command %q", arg) }