| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package config
- import (
- "fmt"
- "io/ioutil"
- "log"
- "os"
- "strings"
- "github.com/spf13/viper"
- )
- // 数据库配置项
- var cfgDatabase *viper.Viper
- // 应用配置项
- var cfgApplication *viper.Viper
- // 应用配置项
- var mqttCfg *viper.Viper
- // Token配置项
- var cfgJwt *viper.Viper
- // Log配置项
- var cfgLogger *viper.Viper
- // Ssl配置项 非必须
- var cfgSsl *viper.Viper
- // 代码生成配置项 非必须
- var cfgGen *viper.Viper
- //载入配置文件
- func Setup(path string) {
- viper.SetConfigFile(path)
- content, err := ioutil.ReadFile(path)
- if err != nil {
- log.Fatal(fmt.Sprintf("Read config file fail: %s", err.Error()))
- }
- //Replace environment variables
- err = viper.ReadConfig(strings.NewReader(os.ExpandEnv(string(content))))
- if err != nil {
- log.Fatal(fmt.Sprintf("Parse config file fail: %s", err.Error()))
- }
- cfgDatabase = viper.Sub("settings.database")
- if cfgDatabase == nil {
- panic("No found settings.database in the configuration")
- }
- DatabaseConfig = InitDatabase(cfgDatabase)
- cfgApplication = viper.Sub("settings.application")
- if cfgApplication == nil {
- panic("No found settings.application in the configuration")
- }
- ApplicationConfig = InitApplication(cfgApplication)
- mqttCfg = viper.Sub("settings.mqttcfg")
- if cfgApplication == nil {
- panic("No found settings.mqttcfg in the configuration")
- }
- MqttCfgInfo = InitMqttCfg(mqttCfg)
- cfgJwt = viper.Sub("settings.jwt")
- if cfgJwt == nil {
- panic("No found settings.jwt in the configuration")
- }
- JwtConfig = InitJwt(cfgJwt)
- cfgLogger = viper.Sub("settings.logger")
- if cfgLogger == nil {
- panic("No found settings.logger in the configuration")
- }
- LoggerConfig = InitLog(cfgLogger)
- cfgSsl = viper.Sub("settings.ssl")
- if cfgSsl == nil {
- // Ssl不是系统强制要求的配置,默认可以不用配置,将设置为关闭状态
- fmt.Println("warning config not found settings.ssl in the configuration")
- SslConfig = new(Ssl)
- SslConfig.Enable = false
- } else {
- SslConfig = InitSsl(cfgSsl)
- }
- cfgGen = viper.Sub("settings.gen")
- if cfgGen == nil {
- panic("No found settings.gen")
- }
- GenConfig = InitGen(cfgGen)
- }
|