make config file optional

This commit is contained in:
Ben Kraft
2020-03-27 16:37:48 -07:00
parent 6caa3fc6c4
commit c536227d32
4 changed files with 24 additions and 16 deletions
+13 -9
View File
@@ -56,18 +56,22 @@ func (c *Config) ValidateAndFillDefaults() error {
}
func ReadAndValidateConfig(filename string) (*Config, error) {
text, err := ioutil.ReadFile(filename)
if err != nil {
return nil, fmt.Errorf("unreadable config file %v: %v", filename, err)
}
var config Config
err = yaml.Unmarshal(text, &config)
if err != nil {
return nil, fmt.Errorf("invalid config file %v: %v", filename, err)
if filename == "" {
config = *defaultConfig
} else {
text, err := ioutil.ReadFile(filename)
if err != nil {
return nil, fmt.Errorf("unreadable config file %v: %v", filename, err)
}
err = yaml.Unmarshal(text, &config)
if err != nil {
return nil, fmt.Errorf("invalid config file %v: %v", filename, err)
}
}
err = config.ValidateAndFillDefaults()
err := config.ValidateAndFillDefaults()
if err != nil {
return nil, fmt.Errorf("invalid config file %v: %v", filename, err)
}