package config import ( "os" "github.com/BurntSushi/toml" "github.com/qit-team/snow-core/config" ) const ( ProdEnv = "production" //线上环境 BetaEnv = "beta" //beta环境 DevEnv = "develop" //开发环境 LocalEnv = "local" //本地环境 ) var srvConf *Config // ------------------------配置文件解析 type Config struct { ServiceName string `toml:"ServiceName"` Env string `toml:"Env"` Debug bool `toml:"Debug"` PrometheusCollectEnable bool `toml:"PrometheusCollectEnable"` SkyWalkingOapServer string `toml:"SkyWalkingOapServer"` Log config.LogConfig `toml:"Log"` Redis config.RedisConfig `toml:"Redis"` Mns config.MnsConfig `toml:"AliMns"` Db config.DbConfig `toml:"Db"` Api config.ApiConfig `toml:"Api"` Admin config.ApiConfig `toml:"Admin"` Nacos Nacos `toml:"Nacas"` Rpc Rpc `toml:"Rpc"` AppKey string `toml:"AppKey"` } type Rpc struct { User string } type Nacos struct { Url string Port int64 } func newConfig() *Config { return new(Config) } // ------------------------ 加载配置 ------------------------// func Load(path string) (*Config, error) { _, err := os.Stat(path) if err != nil { return nil, err } conf := newConfig() if _, err := toml.DecodeFile(path, conf); err != nil { return nil, err } srvConf = conf return conf, nil } // 当前配置 func GetConf() *Config { return srvConf } // 是否调试模式 func IsDebug() bool { return srvConf.Debug } // 当前环境,默认本地开发 func GetEnv() string { if srvConf.Env == "" { return LocalEnv } return srvConf.Env } // 是否当前环境 func IsEnvEqual(env string) bool { return GetEnv() == env }