project-ely/internal/config/config.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
}