LoadConfig loads configuration from json file
(filename string, config *ConfigStructure)
| 282 | |
| 283 | // LoadConfig loads configuration from json file |
| 284 | func LoadConfig(filename string, config *ConfigStructure) error { |
| 285 | f, err := os.Open(filename) |
| 286 | if err != nil { |
| 287 | return err |
| 288 | } |
| 289 | defer func() { |
| 290 | _ = f.Close() |
| 291 | }() |
| 292 | |
| 293 | decJSON := json.NewDecoder(JsonConfigReader.New(f)) |
| 294 | if err = decJSON.Decode(&config); err != nil { |
| 295 | _, _ = f.Seek(0, 0) |
| 296 | decYAML := yaml.NewDecoder(f) |
| 297 | if err2 := decYAML.Decode(&config); err2 != nil { |
| 298 | err = fmt.Errorf("invalid yaml (%s) or json (%s)", err2, err) |
| 299 | } else { |
| 300 | err = nil |
| 301 | } |
| 302 | } |
| 303 | return err |
| 304 | } |
| 305 | |
| 306 | // SaveConfig write configuration to json file |
| 307 | func SaveConfig(filename string, config *ConfigStructure) error { |