From ca87734314e1c3e37d49f9406619d9ae97db8d79 Mon Sep 17 00:00:00 2001 From: filifa Date: Sun, 14 Jul 2024 18:05:07 -0500 Subject: [PATCH] create custom type for team flag --- cmd/root.go | 6 +++--- cmd/teamflag.go | 23 +++++++++++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 cmd/teamflag.go diff --git a/cmd/root.go b/cmd/root.go index f4f111f..a441e3c 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -28,14 +28,14 @@ import ( "scm.dairydemon.net/filifa/mlblive/cmd/internal/statsapi" ) -var Team string +var Team TeamFlag func getGamePk() (string, error) { if Team == "" { return "", errors.New("need team ID") } - id, ok := statsapi.TeamIds[Team] + id, ok := statsapi.TeamIds[string(Team)] if !ok { return "", errors.New("invalid team ID") } @@ -143,6 +143,6 @@ func init() { // Cobra also supports local flags, which will only run // when this action is called directly. - rootCmd.Flags().StringVarP(&Team, "team", "t", "", "team to get updates for") + rootCmd.Flags().VarP(&Team, "team", "t", "team to get updates for") rootCmd.MarkFlagRequired("team") } diff --git a/cmd/teamflag.go b/cmd/teamflag.go new file mode 100644 index 0000000..34af5b7 --- /dev/null +++ b/cmd/teamflag.go @@ -0,0 +1,23 @@ +package cmd + +import "errors" + +type TeamFlag string + +func (t *TeamFlag) String() string { + return string(*t) +} + +func (t *TeamFlag) Set(v string) error { + switch v { + case "laa", "az", "bal", "bos", "chc", "cin", "cle", "col", "det", "hou", "kc", "lad", "wsh", "nym", "oak", "pit", "sd", "sea", "sf", "stl", "tb", "tex", "tor", "min", "phi", "atl", "cws", "mia", "nyy", "mil": + *t = TeamFlag(v) + return nil + default: + return errors.New("invalid team ID") + } +} + +func (t *TeamFlag) Type() string { + return "team flag" +}