74 lines
1.6 KiB
Go
74 lines
1.6 KiB
Go
|
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"`
|
||
|
}
|
||
|
|
||
|
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
|
||
|
}
|