32 lines
613 B
Go
32 lines
613 B
Go
package gosimpleconf
|
|
|
|
import "os"
|
|
|
|
func Configure(filename string) (ConfigMap, error) {
|
|
var err error
|
|
|
|
configMap, err := ReadFile(filename)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
flagMap := SetupFlagOverrides(configMap)
|
|
configMap = ParseFlags(configMap, flagMap)
|
|
|
|
return configMap, nil
|
|
}
|
|
|
|
func ConfigureWithDefaults(filename string, defaultConf ConfigMap) (ConfigMap, error) {
|
|
var err error
|
|
|
|
_, err = os.Stat(filename)
|
|
if os.IsNotExist(err) {
|
|
// Config file does not exist, return a default configMap
|
|
return defaultConf, nil
|
|
} else if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return Configure(filename)
|
|
}
|