37 lines
767 B
Go
37 lines
767 B
Go
package config
|
|
|
|
import (
|
|
"os"
|
|
|
|
"gitea.wisellama.rocks/Wisellama/gosimpleconf"
|
|
)
|
|
|
|
var defaultConfig gosimpleconf.ConfigMap = gosimpleconf.ConfigMap{
|
|
"game.title": "Project Ely",
|
|
"game.framerate": "60.0",
|
|
"log.utcTime": "false",
|
|
"log.writeToFile": "false",
|
|
}
|
|
|
|
func Configure(filename string) (gosimpleconf.ConfigMap, error) {
|
|
var err error
|
|
|
|
_, err = os.Stat(filename)
|
|
if os.IsNotExist(err) {
|
|
// Config file does not exist, return a default configMap
|
|
return defaultConfig, nil
|
|
} else if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
configMap, err := gosimpleconf.Load(filename)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
flagMap := gosimpleconf.SetupFlagOverrides(configMap)
|
|
configMap = gosimpleconf.ParseFlags(configMap, flagMap)
|
|
|
|
return configMap, nil
|
|
}
|