parcoursmob/config.go

42 lines
842 B
Go

package main
import (
"strings"
"github.com/spf13/viper"
)
func ReadConfig() (*viper.Viper, error) {
defaults := map[string]any{
"service_name": "PARCOURSMOB",
"templates": map[string]any{
"dir": "templates/default",
"public_dir": "template/default/public",
},
"server": map[string]any{
"listen": "0.0.0.0:9000",
},
"identification": map[string]any{
"sessions": map[string]any{
"store": "cookie",
"session_key": "SESSION_KEY",
},
},
"geo": map[string]any{
"pelias": map[string]any{
"url": "https://geocode.ridygo.fr",
},
},
}
v := viper.New()
for key, value := range defaults {
v.SetDefault(key, value)
}
v.SetConfigName("config")
v.AddConfigPath(".")
v.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
v.AutomaticEnv()
err := v.ReadInConfig()
return v, err
}