42 lines
842 B
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
|
|
}
|