global.go 736 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package global
  2. import (
  3. "github.com/ZR233/gconfig/v2"
  4. "github.com/hashicorp/consul/api"
  5. "github.com/sirupsen/logrus"
  6. "github.com/spf13/viper"
  7. "path"
  8. )
  9. const (
  10. envName_CONSUL_ADDR = "CONSUL_ADDR"
  11. )
  12. func Init() (db gconfig.DB) {
  13. err := viper.BindEnv(envName_CONSUL_ADDR)
  14. if err != nil {
  15. panic(err)
  16. }
  17. var consulCfg *api.Config
  18. consulAddr := viper.GetString(envName_CONSUL_ADDR)
  19. if consulAddr != "" {
  20. ConsulAddr = consulAddr
  21. consulCfg = &api.Config{
  22. Address: ConsulAddr,
  23. }
  24. logrus.Info("consul addr: %s", ConsulAddr)
  25. }
  26. Config = gconfig.NewConfig(path.Join(ProjectName, AppName)).UseConsul(consulCfg)
  27. err = Config.Unmarshal(&Project)
  28. if err != nil {
  29. panic(err)
  30. }
  31. logrus.Info("config finish")
  32. return
  33. }