2022-05-09 14:48:28 +08:00
|
|
|
package config
|
|
|
|
|
|
|
|
import (
|
|
|
|
"log"
|
|
|
|
|
|
|
|
"github.com/spf13/viper"
|
|
|
|
"github.com/zu1k/nali/internal/db"
|
|
|
|
)
|
|
|
|
|
|
|
|
func ReadConfig(basePath string) {
|
|
|
|
viper.SetDefault("databases", db.GetDefaultDBList())
|
|
|
|
viper.SetDefault("selected.ipv4", "qqwry")
|
|
|
|
viper.SetDefault("selected.ipv6", "zxipv6wry")
|
|
|
|
viper.SetDefault("selected.cdn", "cdn")
|
|
|
|
viper.SetDefault("selected.lang", "zh-CN")
|
|
|
|
|
|
|
|
viper.SetConfigName("config")
|
|
|
|
viper.SetConfigType("yaml")
|
|
|
|
viper.AddConfigPath(basePath)
|
|
|
|
err := viper.ReadInConfig()
|
|
|
|
if err != nil {
|
|
|
|
err = viper.SafeWriteConfig()
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
_ = viper.BindEnv("selected.ipv4", "NALI_DB_IP4")
|
|
|
|
_ = viper.BindEnv("selected.ipv6", "NALI_DB_IP6")
|
|
|
|
_ = viper.BindEnv("selected.cdn", "NALI_DB_CDN")
|
|
|
|
_ = viper.BindEnv("selected.lang", "NALI_LANG")
|
|
|
|
|
|
|
|
dbList := db.List{}
|
|
|
|
err = viper.UnmarshalKey("databases", &dbList)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatalln("Config invalid:", err)
|
|
|
|
}
|
2022-05-24 15:16:48 +08:00
|
|
|
|
2022-05-09 14:48:28 +08:00
|
|
|
db.NameDBMap.From(dbList)
|
|
|
|
db.TypeDBMap.From(dbList)
|
|
|
|
}
|