diff --git a/cmd/leagueflag.go b/cmd/leagueflag.go index 3e5a032..16eaba6 100644 --- a/cmd/leagueflag.go +++ b/cmd/leagueflag.go @@ -16,8 +16,6 @@ this program. If not, see . package cmd import ( - "errors" - "sort" "strings" "scm.dairydemon.net/filifa/mlblive/cmd/internal/statsapi" @@ -56,10 +54,8 @@ func (t *leagueFlag) Set(v string) error { _, ok := leagueIDs[v] if !ok { - allowed := allowedFlags(leagueIDs) - sort.Strings(allowed) - allowedList := strings.Join(allowed, ", ") - err = errors.New("league must be one of " + allowedList) + allowed := keys(leagueIDs) + err = flagValueError("league", allowed) } else { *t = leagueFlag(v) } diff --git a/cmd/sportflag.go b/cmd/sportflag.go index 64ae01b..07f05cf 100644 --- a/cmd/sportflag.go +++ b/cmd/sportflag.go @@ -16,8 +16,6 @@ this program. If not, see . package cmd import ( - "errors" - "sort" "strings" "scm.dairydemon.net/filifa/mlblive/cmd/internal/statsapi" @@ -61,10 +59,8 @@ func (t *sportFlag) Set(v string) error { _, ok := sportIDs[v] if !ok { - allowed := allowedFlags(sportIDs) - sort.Strings(allowed) - allowedList := strings.Join(allowed, ", ") - err = errors.New("sport must be one of " + allowedList) + allowed := keys(sportIDs) + err = flagValueError("sport", allowed) } else { *t = sportFlag(v) } diff --git a/cmd/teamflag.go b/cmd/teamflag.go index 88d38f6..52d6133 100644 --- a/cmd/teamflag.go +++ b/cmd/teamflag.go @@ -56,7 +56,7 @@ var teamIDs = map[string]statsapi.TeamID{ "mil": statsapi.MIL, } -func allowedFlags[V any](m map[string]V) []string { +func keys[V any](m map[string]V) []string { keys := make([]string, len(m)) i := 0 @@ -68,6 +68,12 @@ func allowedFlags[V any](m map[string]V) []string { return keys } +func flagValueError(name string, allowed []string) error { + sort.Strings(allowed) + allowedList := strings.Join(allowed, ", ") + return errors.New(name + " must be one of " + allowedList) +} + type teamFlag string func (t *teamFlag) String() string { @@ -85,10 +91,8 @@ func (t *teamFlag) Set(v string) error { _, ok := teamIDs[v] if !ok { - allowed := allowedFlags(teamIDs) - sort.Strings(allowed) - allowedList := strings.Join(allowed, ", ") - err = errors.New("team must be one of " + allowedList) + allowed := keys(teamIDs) + err = flagValueError("team", allowed) } else { *t = teamFlag(v) }