@@ -107,21 +107,29 @@ func (c *Config) Load() *Config {
107
107
},
108
108
}
109
109
110
- err := viper .Sub ("mqtt" ).Unmarshal (& myConfig .Mqtt )
111
- if err != nil {
112
- panic (fmt .Errorf ("unable to decode mqtt config, %v" , err ))
110
+ if viper .IsSet ("mqtt" ) {
111
+ err := viper .Sub ("mqtt" ).Unmarshal (& myConfig .Mqtt )
112
+ if err != nil {
113
+ panic (fmt .Errorf ("unable to decode mqtt config, %v" , err ))
114
+ }
113
115
}
114
- err = viper .Sub ("webhooks" ).Unmarshal (& myConfig .Webhooks )
115
- if err != nil {
116
- panic (fmt .Errorf ("unable to decode webhooks config, %v" , err ))
116
+ if viper .IsSet ("webhooks" ) {
117
+ err := viper .Sub ("webhooks" ).Unmarshal (& myConfig .Webhooks )
118
+ if err != nil {
119
+ panic (fmt .Errorf ("unable to decode webhooks config, %v" , err ))
120
+ }
117
121
}
118
- err = viper .Sub ("hisilicon" ).Unmarshal (& myConfig .Hisilicon )
119
- if err != nil {
120
- panic (fmt .Errorf ("unable to decode hisilicon config, %v" , err ))
122
+ if viper .IsSet ("hisilicon" ) {
123
+ err := viper .Sub ("hisilicon" ).Unmarshal (& myConfig .Hisilicon )
124
+ if err != nil {
125
+ panic (fmt .Errorf ("unable to decode hisilicon config, %v" , err ))
126
+ }
121
127
}
122
- err = viper .Sub ("ftp" ).Unmarshal (& myConfig .Ftp )
123
- if err != nil {
124
- panic (fmt .Errorf ("unable to decode FTP config, %v" , err ))
128
+ if viper .IsSet ("ftp" ) {
129
+ err := viper .Sub ("ftp" ).Unmarshal (& myConfig .Ftp )
130
+ if err != nil {
131
+ panic (fmt .Errorf ("unable to decode FTP config, %v" , err ))
132
+ }
125
133
}
126
134
127
135
if ! myConfig .Mqtt .Enabled && ! myConfig .Webhooks .Enabled {
@@ -132,48 +140,51 @@ func (c *Config) Load() *Config {
132
140
panic ("No Servers are enabled. Nothing to do!" )
133
141
}
134
142
135
- hikvisionCamsConfig := viper .Sub ("hikvision.cams" )
136
- if hikvisionCamsConfig != nil {
137
- camConfigs := viper .GetStringMapString ("hikvision.cams" )
138
-
139
- for camName := range camConfigs {
140
- camConfig := viper .Sub ("hikvision.cams." + camName )
141
- // CONSTRUCT CAMERA URL
142
- url := ""
143
- if camConfig .GetBool ("https" ) {
144
- url += "https://"
145
- } else {
146
- url += "http://"
147
- }
148
- url += camConfig .GetString ("address" ) + "/ISAPI/"
149
-
150
- camera := hikvision.HikCamera {
151
- Name : camName ,
152
- Url : url ,
153
- Username : camConfig .GetString ("username" ),
154
- Password : camConfig .GetString ("password" ),
155
- }
156
- if camConfig .GetBool ("rawTcp" ) {
157
- camera .BrokenHttp = true
143
+ if viper .IsSet ("hikvision.cams" ) {
144
+ hikvisionCamsConfig := viper .Sub ("hikvision.cams" )
145
+ if hikvisionCamsConfig != nil {
146
+ camConfigs := viper .GetStringMapString ("hikvision.cams" )
147
+
148
+ for camName := range camConfigs {
149
+ camConfig := viper .Sub ("hikvision.cams." + camName )
150
+ // CONSTRUCT CAMERA URL
151
+ url := ""
152
+ if camConfig .GetBool ("https" ) {
153
+ url += "https://"
154
+ } else {
155
+ url += "http://"
156
+ }
157
+ url += camConfig .GetString ("address" ) + "/ISAPI/"
158
+
159
+ camera := hikvision.HikCamera {
160
+ Name : camName ,
161
+ Url : url ,
162
+ Username : camConfig .GetString ("username" ),
163
+ Password : camConfig .GetString ("password" ),
164
+ }
165
+ if camConfig .GetBool ("rawTcp" ) {
166
+ camera .BrokenHttp = true
167
+ }
168
+ if myConfig .Debug {
169
+ fmt .Printf ("Added Hikvision camera:\n " +
170
+ " name: %s \n " +
171
+ " url: %s \n " +
172
+ " username: %s \n " +
173
+ " password set: %t\n " +
174
+ " rawRcp: %t\n " ,
175
+ camera .Name ,
176
+ camera .Url ,
177
+ camera .Username ,
178
+ camera .Password != "" ,
179
+ camera .BrokenHttp ,
180
+ )
181
+ }
182
+
183
+ myConfig .Hikvision .Cams = append (myConfig .Hikvision .Cams , camera )
158
184
}
159
- if myConfig .Debug {
160
- fmt .Printf ("Added Hikvision camera:\n " +
161
- " name: %s \n " +
162
- " url: %s \n " +
163
- " username: %s \n " +
164
- " password set: %t\n " +
165
- " rawRcp: %t\n " ,
166
- camera .Name ,
167
- camera .Url ,
168
- camera .Username ,
169
- camera .Password != "" ,
170
- camera .BrokenHttp ,
171
- )
172
- }
173
-
174
- myConfig .Hikvision .Cams = append (myConfig .Hikvision .Cams , camera )
175
185
}
176
186
}
187
+
177
188
return & myConfig
178
189
}
179
190
0 commit comments