Files
ferry/tools/config/config.go

68 lines
1.5 KiB
Go
Raw Normal View History

2020-07-13 20:33:20 +08:00
package config
import (
2020-08-15 23:34:37 +08:00
"ferry/pkg/logger"
2020-07-13 20:33:20 +08:00
"fmt"
"os"
"strings"
2020-08-15 23:34:37 +08:00
"github.com/spf13/viper"
2020-07-13 20:33:20 +08:00
)
var cfgDatabase *viper.Viper
var cfgApplication *viper.Viper
var cfgJwt *viper.Viper
var cfgSsl *viper.Viper
2024-11-18 23:30:50 +08:00
// ConfigSetup 载入配置文件
2020-07-13 20:33:20 +08:00
func ConfigSetup(path string) {
viper.SetConfigFile(path)
2024-11-18 23:30:50 +08:00
content, err := os.ReadFile(path)
2020-07-13 20:33:20 +08:00
if err != nil {
2020-08-15 23:34:37 +08:00
logger.Fatal(fmt.Sprintf("Read config file fail: %s", err.Error()))
2020-07-13 20:33:20 +08:00
}
//Replace environment variables
err = viper.ReadConfig(strings.NewReader(os.ExpandEnv(string(content))))
if err != nil {
2020-08-15 23:34:37 +08:00
logger.Fatal(fmt.Sprintf("Parse config file fail: %s", err.Error()))
2020-07-13 20:33:20 +08:00
}
2020-08-15 23:34:37 +08:00
// 数据库初始化
2020-07-13 20:33:20 +08:00
cfgDatabase = viper.Sub("settings.database")
if cfgDatabase == nil {
panic("config not found settings.database")
}
DatabaseConfig = InitDatabase(cfgDatabase)
2020-08-15 23:34:37 +08:00
// 启动参数
2020-07-13 20:33:20 +08:00
cfgApplication = viper.Sub("settings.application")
if cfgApplication == nil {
panic("config not found settings.application")
}
ApplicationConfig = InitApplication(cfgApplication)
2020-08-15 23:34:37 +08:00
// Jwt初始化
2020-07-13 20:33:20 +08:00
cfgJwt = viper.Sub("settings.jwt")
if cfgJwt == nil {
panic("config not found settings.jwt")
}
JwtConfig = InitJwt(cfgJwt)
2020-08-15 23:34:37 +08:00
// ssl 配置
2020-07-13 20:33:20 +08:00
cfgSsl = viper.Sub("settings.ssl")
if cfgSsl == nil {
panic("config not found settings.ssl")
}
SslConfig = InitSsl(cfgSsl)
2020-08-15 23:34:37 +08:00
// 日志配置
logger.Init()
}
2020-07-13 20:33:20 +08:00
func SetConfig(configPath string, key string, value interface{}) {
viper.AddConfigPath(configPath)
viper.Set(key, value)
2020-08-15 23:34:37 +08:00
_ = viper.WriteConfig()
2020-07-13 20:33:20 +08:00
}