/* 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" "sort" "strings" "scm.dairydemon.net/filifa/mlblive/cmd/internal/statsapi" ) var leagueIDs = map[string]statsapi.LeagueID{ "al": statsapi.AL, "nl": statsapi.NL, "nn2": statsapi.NN2, "nnl": statsapi.NNL, "ewl": statsapi.EWL, "nal": statsapi.NAL, "ecl": statsapi.ECL, "anl": statsapi.ANL, "nsl": statsapi.NSL, "aa": statsapi.AA, "pl": statsapi.PL, "ua": statsapi.UA, "fl": statsapi.FL, } type leagueFlag string func (t *leagueFlag) String() string { return string(*t) } func (t *leagueFlag) Set(v string) error { var err error v = strings.ToLower(v) if v == "" { *t = leagueFlag(v) return nil } _, ok := leagueIDs[v] if !ok { allowed := allowedFlags(leagueIDs) sort.Strings(allowed) allowedList := strings.Join(allowed, ", ") err = errors.New("league must be one of " + allowedList) } else { *t = leagueFlag(v) } return err } func (t *leagueFlag) Type() string { return "leagueFlag" }