package global import ( "github.com/ZR233/gconfig/v2" "github.com/hashicorp/consul/api" "github.com/sirupsen/logrus" "github.com/spf13/viper" "path" ) const ( envName_CONSUL_ADDR = "CONSUL_ADDR" ) func Init() (db gconfig.DB) { err := viper.BindEnv(envName_CONSUL_ADDR) if err != nil { panic(err) } var consulCfg *api.Config consulAddr := viper.GetString(envName_CONSUL_ADDR) if consulAddr != "" { ConsulAddr = consulAddr consulCfg = &api.Config{ Address: ConsulAddr, } logrus.Info("consul addr: %s", ConsulAddr) } Config = gconfig.NewConfig(path.Join(ProjectName, AppName)).UseConsul(consulCfg) err = Config.Unmarshal(&Project) if err != nil { panic(err) } logrus.Info("config finish") return }