Add --side argument to filter list command (#256)

* added list command filter by side

* changed error logging for --side flags

* removed len checks on side flags

* removed comments previous commit made useless
This commit is contained in:
JaegyuDev
2023-09-16 12:26:10 -04:00
committed by GitHub
parent b451a9b034
commit 9889b48b0d
2 changed files with 26 additions and 4 deletions

View File

@@ -39,6 +39,24 @@ var listCmd = &cobra.Command{
os.Exit(1)
}
// Filter mods by side
if viper.IsSet("list.side") {
side := viper.GetString("list.side")
if side != core.UniversalSide && side != core.ServerSide && side != core.ClientSide {
fmt.Printf("Invalid side %q, must be one of client, server, or both (default)\n", side)
os.Exit(1)
}
i := 0
for _, mod := range mods {
if mod.Side == side || mod.Side == core.EmptySide || mod.Side == core.UniversalSide || side == core.UniversalSide {
mods[i] = mod
i++
}
}
mods = mods[:i]
}
sort.Slice(mods, func(i, j int) bool {
return strings.ToLower(mods[i].Name) < strings.ToLower(mods[j].Name)
})
@@ -61,4 +79,7 @@ func init() {
listCmd.Flags().BoolP("version", "v", false, "Print name and version")
_ = viper.BindPFlag("list.version", listCmd.Flags().Lookup("version"))
listCmd.Flags().StringP("side", "s", "", "Filter mods by side (e.g., client or server)")
_ = viper.BindPFlag("list.side", listCmd.Flags().Lookup("side"))
}