| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- package conf
- import (
- "log"
- "os"
- "speechAnalysis/pkg/logx"
- "speechAnalysis/pkg/mysqlx"
- "github.com/spf13/viper"
- )
- var (
- // config file name
- configName = "config"
- // config file paths
- configPaths = []string{
- "./",
- "../",
- "./conf",
- "../conf",
- }
- )
- type (
- webConf struct {
- Host string // 本机ip地址
- Port string // 端口号
- APPort string // 本机作为的Grpc服务端的端口号
- AlHost string // 算法服务ip地址
- AlPort string // 算法服务端口号
- NodeId string // 主账户用户名
- OssType string // 对象存储类型
- JWTSecret string
- }
- nsqConf struct {
- NsqdAddr string
- NsqlookupdAddr string
- }
- localConf struct {
- StorePath string // 本地文件存储路径
- }
- Analysis struct {
- Url string // 本地文件存储路径
- }
- )
- var (
- WebConf = &webConf{}
- LogConf = &logx.LogConf{}
- DbConf = &mysqlx.Conf{}
- NsqConf = &nsqConf{}
- LocalConf = &localConf{}
- AanlysisConf = &Analysis{}
- GrpcPort string
- Viper *viper.Viper
- )
- func Init() error {
- Viper = viper.New()
- Viper.SetConfigName(configName)
- for _, path := range configPaths {
- Viper.AddConfigPath(path)
- }
- if err := Viper.ReadInConfig(); err != nil {
- log.Fatalf("ReadInConfig err:%v", err)
- }
- read2Conf(Viper)
- GrpcPort = os.Getenv("GRPC_PORT") // 只给grpc算法服务使用,本服务不用
- nodeId := os.Getenv("NODE_ID") // 主账户用户名
- host := os.Getenv("HOST") // 本机IP地址
- algHost := os.Getenv("AL_HOST") // 算法服务的IP地址
- nsqdAddr := os.Getenv("NSQD_ADDR")
- if len(GrpcPort) == 0 { // 如果gprcPort为空,那么用配置的APPort
- GrpcPort = WebConf.APPort
- }
- if len(nodeId) > 0 {
- WebConf.NodeId = nodeId
- }
- if len(algHost) > 0 {
- WebConf.AlHost = algHost
- }
- if len(host) > 0 {
- WebConf.Host = host
- }
- if len(nsqdAddr) > 0 {
- NsqConf.NsqdAddr = nsqdAddr
- }
- DBHost := os.Getenv("DB_HOST")
- DBName := os.Getenv("DB_NAME")
- DBPort := os.Getenv("DB_PORT")
- DBUser := os.Getenv("DB_USER")
- DBPasswd := os.Getenv("DB_PASSWD")
- if len(DBHost) > 0 &&
- len(DBName) > 0 &&
- len(DBPort) > 0 &&
- len(DBUser) > 0 &&
- len(DBPasswd) > 0 {
- DbConf.Dsn = DBUser + ":" + DBPasswd + "@tcp(" + DBHost + ":" + DBPort + ")/" + DBName + "?charset=utf8&parseTime=True&loc=Local"
- }
- return nil
- }
- func read2Conf(v *viper.Viper) {
- _ = v.UnmarshalKey("web", WebConf)
- _ = v.UnmarshalKey("log", LogConf)
- _ = v.UnmarshalKey("db", DbConf)
- _ = v.UnmarshalKey("nsq", NsqConf)
- _ = v.UnmarshalKey("local", LocalConf)
- _ = v.UnmarshalKey("analysis", AanlysisConf)
- showConfig()
- }
- func showConfig() {
- log.Println("......................................................")
- log.Printf(" WebConf: %+v", WebConf)
- log.Printf(" LogConf: %+v", LogConf)
- log.Printf(" DbConf: %+v", DbConf)
- log.Printf(" NsqConf: %+v", NsqConf)
- log.Printf(" GrpcPort: %+v", GrpcPort)
- log.Printf(" LocalConf: %+v", LocalConf)
- log.Printf(" AanlysisConf: %+v", AanlysisConf)
- log.Println("......................................................")
- }
|