config.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package config
  2. import (
  3. "fmt"
  4. "github.com/spf13/cast"
  5. "os"
  6. "sync"
  7. "time"
  8. "github.com/joho/godotenv"
  9. "github.com/sirupsen/logrus"
  10. )
  11. var initOnce sync.Once
  12. var SystemId int64
  13. func Init(cfgfile string) {
  14. initOnce.Do(func() {
  15. envFilename := cfgfile
  16. // if SysType == "windows" {
  17. // envFilename = "local.env"
  18. // // go run main.go -c local67.env
  19. // flag.StringVar(&envFilename, "c", "local.env", "配置环境")
  20. // flag.Parse()
  21. // }
  22. fmt.Printf("当前运行环境为:%v, 加载的环境变量路径为:%v, 运行路径为:%v \r\n", SysType, envFilename, RootPtah)
  23. if err := godotenv.Load(envFilename); err != nil {
  24. logrus.Panic("本地环境加载失败", err)
  25. return
  26. }
  27. // 全局修改为上海时区
  28. time.Local, _ = time.LoadLocation("Asia/Shanghai")
  29. // 读取翻译文件
  30. if err := LoadLocales("manifest/locales/zh-cn.yaml"); err != nil {
  31. logrus.Panic("翻译文件加载失败", err)
  32. }
  33. BuildLogger()
  34. InitDatabase()
  35. InitRedis()
  36. InitCache()
  37. InitNats()
  38. InitEtcd()
  39. InitElastic()
  40. InitCOSClient()
  41. InitEntranceIamClient()
  42. // 初始化系统id
  43. SystemId = cast.ToInt64(os.Getenv("SYSTEM_ID"))
  44. })
  45. }