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)
}