@@ -10,17 +10,18 @@ import (
10
10
"path/filepath"
11
11
)
12
12
13
- func DefaultConfig () (c Config ) {
14
- c .AutoRefConfigs = map [string ]* AutoRefConfig {}
15
- c .GameEventBehavior = map [string ]Config_Behavior {}
13
+ func DefaultConfig () (x Config ) {
14
+ x .AutoRefConfigs = map [string ]* AutoRefConfig {}
15
+ x .GameEventBehavior = map [string ]Config_Behavior {}
16
16
for _ , event := range state .GameEventsForBehaviorConfig () {
17
- c .GameEventBehavior [event .String ()] = Config_BEHAVIOR_ACCEPT_MAJORITY
17
+ x .GameEventBehavior [event .String ()] = Config_BEHAVIOR_ACCEPT_MAJORITY
18
18
}
19
+ x .Teams = []string {"Unknown" , "Test Team" }
19
20
return
20
21
}
21
22
22
23
// ReadFrom loads a config from given file
23
- func (m * Config ) ReadFrom (fileName string ) (err error ) {
24
+ func (x * Config ) ReadFrom (fileName string ) (err error ) {
24
25
25
26
f , err := os .OpenFile (fileName , os .O_RDONLY , 0600 )
26
27
if err != nil {
@@ -31,21 +32,32 @@ func (m *Config) ReadFrom(fileName string) (err error) {
31
32
return
32
33
}
33
34
34
- err = jsonpb .UnmarshalString (string (b ), m )
35
+ err = jsonpb .UnmarshalString (string (b ), x )
35
36
if err != nil {
36
37
err = errors .Wrapf (err , "Could not unmarshal config file %v" , fileName )
37
38
}
38
39
40
+ defConfig := DefaultConfig ()
41
+ if x .AutoRefConfigs == nil {
42
+ x .AutoRefConfigs = defConfig .AutoRefConfigs
43
+ }
44
+ if x .GameEventBehavior == nil {
45
+ x .GameEventBehavior = defConfig .GameEventBehavior
46
+ }
47
+ if len (x .Teams ) == 0 {
48
+ x .Teams = defConfig .Teams
49
+ }
50
+
39
51
return
40
52
}
41
53
42
54
// LoadControllerConfig loads the controller config, creating a default one if it is not present yet
43
- func (m * Config ) LoadControllerConfig (configFileName string ) {
44
- err := m .ReadFrom (configFileName )
55
+ func (x * Config ) LoadControllerConfig (configFileName string ) {
56
+ err := x .ReadFrom (configFileName )
45
57
if err != nil {
46
58
log .Printf ("Could not load config: %v" , err )
47
- * m = DefaultConfig ()
48
- err = m .WriteTo (configFileName )
59
+ * x = DefaultConfig ()
60
+ err = x .WriteTo (configFileName )
49
61
if err != nil {
50
62
log .Printf ("Failed to write a default config file to %v: %v" , configFileName , err )
51
63
} else {
@@ -56,11 +68,11 @@ func (m *Config) LoadControllerConfig(configFileName string) {
56
68
}
57
69
58
70
// WriteTo writes the config to the given file
59
- func (m * Config ) WriteTo (fileName string ) (err error ) {
71
+ func (x * Config ) WriteTo (fileName string ) (err error ) {
60
72
marshaler := jsonpb.Marshaler {Indent : " " }
61
- jsonStr , err := marshaler .MarshalToString (m )
73
+ jsonStr , err := marshaler .MarshalToString (x )
62
74
if err != nil {
63
- err = errors .Wrapf (err , "Could not marshal config %v" , m )
75
+ err = errors .Wrapf (err , "Could not marshal config %v" , x )
64
76
return
65
77
}
66
78
err = os .MkdirAll (filepath .Dir (fileName ), 0755 )
@@ -73,9 +85,9 @@ func (m *Config) WriteTo(fileName string) (err error) {
73
85
return
74
86
}
75
87
76
- func (m * Config ) StringJson () string {
88
+ func (x * Config ) StringJson () string {
77
89
marshaler := jsonpb.Marshaler {}
78
- if str , err := marshaler .MarshalToString (m ); err != nil {
90
+ if str , err := marshaler .MarshalToString (x ); err != nil {
79
91
return err .Error ()
80
92
} else {
81
93
return str
0 commit comments