/* Copyright © 2024 filifa This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ package cmd import ( "errors" "strings" "scm.dairydemon.net/filifa/mlblive/cmd/internal/statsapi" ) var sportIDs = map[string]statsapi.SportID{ "mlb": statsapi.MLB, "aaa": statsapi.TripleA, "aa": statsapi.DoubleA, "higha": statsapi.HighA, "a": statsapi.SingleA, "rookie": statsapi.Rookie, "winter": statsapi.Winter, "milb": statsapi.MILB, "indie": statsapi.Independent, "negro": statsapi.Negro, "kbo": statsapi.Korea, "npb": statsapi.NPB, "int": statsapi.International, "int18u": statsapi.International18U, "int16u": statsapi.International16U, "intamateur": statsapi.InternationalAmateur, "college": statsapi.College, "hs": statsapi.HighSchool, } type sportFlag string func (t *sportFlag) String() string { return string(*t) } func (t *sportFlag) Set(v string) error { var err error v = strings.ToLower(v) if v == "" { *t = sportFlag(v) return nil } _, ok := sportIDs[v] if !ok { allowed := allowedFlags(sportIDs) allowedList := strings.Join(allowed, ", ") err = errors.New("sport must be one of " + allowedList) } else { *t = sportFlag(v) } return err } func (t *sportFlag) Type() string { return "sportFlag" }