Skip to content

Commit f0ef8fa

Browse files
committed
Add --list-fields
1 parent 8b26e82 commit f0ef8fa

File tree

2 files changed

+45
-11
lines changed

2 files changed

+45
-11
lines changed

fieldspec.go

+43-11
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"fmt"
45
"github.com/hfern/goseq"
56
)
67

@@ -41,32 +42,33 @@ var serverProperties = map[string]ServerMethod{
4142
type FieldProperty struct {
4243
name string
4344
size int
45+
full string
4446
}
4547

4648
var serverFieldProperties = map[string]FieldProperty{
47-
"bots": FieldProperty{name: "Bots", size: 5},
48-
"duration": FieldProperty{name: "Arrest In", size: 7},
49-
"environment": FieldProperty{name: "Env", size: 3},
49+
"bots": FieldProperty{name: "Bots", size: 5, full: "Number of Bots"},
50+
"duration": FieldProperty{name: "Arrest In", size: 7, full: "Will arrest in (The Ship)"},
51+
"environment": FieldProperty{name: "Env", size: 3, full: "Environment OS"},
5052
"folder": FieldProperty{name: "Folder", size: 10},
5153
"game": FieldProperty{name: "Game", size: 5},
5254
"gameid": FieldProperty{name: "GameID", size: 6},
5355
"id": FieldProperty{name: "ID", size: 5},
5456
"keywords": FieldProperty{name: "Keywords", size: 9},
5557
"map": FieldProperty{name: "Map", size: 10},
56-
"maxplayers": FieldProperty{name: "Max", size: 3},
58+
"maxplayers": FieldProperty{name: "Max", size: 3, full: "Maximum number of players allowed"},
5759
"mode": FieldProperty{name: "Mode", size: 4},
58-
"name": FieldProperty{name: "Name", size: 15},
59-
"players": FieldProperty{name: "Ply", size: 3},
60+
"name": FieldProperty{name: "Name", size: 15, full: "Name of Server"},
61+
"players": FieldProperty{name: "Ply", size: 3, full: "Number Players"},
6062
"port": FieldProperty{name: "Port", size: 5},
61-
"servertype": FieldProperty{name: "Type", size: 5},
63+
"servertype": FieldProperty{name: "Type", size: 5, full: "Hosting Type (eg dedicated)"},
6264
"spectatorname": FieldProperty{name: "Spectator", size: 9},
6365
"spectatorport": FieldProperty{name: "SpPort", size: 7},
6466
"steamid": FieldProperty{name: "SteamID", size: 10},
65-
"vac": FieldProperty{name: "VAC", size: 3},
67+
"vac": FieldProperty{name: "VAC", size: 3, full: "Is the server VAC protected?"},
6668
"version": FieldProperty{name: "Version", size: 5},
67-
"visibility": FieldProperty{name: "Pw.", size: 3},
68-
"witnesses": FieldProperty{name: "Witnesses", size: 10},
69-
"ip": FieldProperty{name: "IP Addr", size: 21},
69+
"visibility": FieldProperty{name: "Pw.", size: 3, full: "Is a password required to join?"},
70+
"witnesses": FieldProperty{name: "Witnesses", size: 10, full: "# Witnesses for The Ship."},
71+
"ip": FieldProperty{name: "IP Addr", size: 21, full: "IP Address of the Server"},
7072
}
7173

7274
type FieldTransformer func(Any) Any
@@ -90,3 +92,33 @@ func transformEnvironment(in Any) Any {
9092
return "_"
9193
}
9294
}
95+
96+
func printServerFieldProperties() {
97+
fmt.Println("Server Fields:")
98+
99+
longest := 0
100+
for field, _ := range serverFieldProperties {
101+
if len(field) > longest {
102+
longest = len(field)
103+
}
104+
}
105+
106+
for field, prop := range serverFieldProperties {
107+
108+
fmt.Print(" ", field)
109+
110+
for i := len(field); i < longest; i++ {
111+
fmt.Print(" ")
112+
}
113+
114+
desc := prop.name
115+
116+
if prop.full != "" {
117+
desc = prop.full
118+
}
119+
120+
fmt.Printf(" %s (size %d)\n", desc, prop.size)
121+
}
122+
123+
fmt.Println()
124+
}

masterctx.go

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ type MasterQueryOptions struct {
3232
// TODO(hunter): Add this
3333
ListFilters bool `long:"list-filters" default:"false" description:"List known filters." group:"Lists"`
3434
ListRegions bool `long:"list-regions" default:"false" description:"List Regions." group:"Lists"`
35+
ListFields bool `long:"list-fields" default:"false" description:"List Server Fields." group:"Lists"`
3536
}
3637

3738
var masterOptions MasterQueryOptions
@@ -279,6 +280,7 @@ func printInfo() (done bool) {
279280
}{
280281
{printKnownFiltersInfo, masterOptions.ListFilters},
281282
{printRegionInfo, masterOptions.ListRegions},
283+
{printServerFieldProperties, masterOptions.ListFields},
282284
}
283285

284286
for _, info := range infos {

0 commit comments

Comments
 (0)