蛋蛋星球 后台端
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

56 wiersze
1.1 KiB

  1. package cfg
  2. import (
  3. "flag"
  4. "io/ioutil"
  5. "gopkg.in/yaml.v2"
  6. )
  7. // 配置文件数据,全局变量
  8. var (
  9. Debug bool
  10. Prd bool
  11. SrvAddr string
  12. SmartCanteenPay string
  13. RedisAddr string
  14. RedisPassword string
  15. DB *DBCfg
  16. IMDB *DBCfg
  17. MQ *MQCfg
  18. ES *ESCfg
  19. Log *LogCfg
  20. )
  21. // 初始化配置文件,将cfg.yml读入到内存
  22. func InitCfg() {
  23. //用指定的名称、默认值、使用信息注册一个string类型flag。
  24. path := flag.String("c", "etc/cfg.yml", "config file")
  25. //解析命令行参数写入注册的flag里。
  26. //解析之后,flag的值可以直接使用。
  27. flag.Parse()
  28. var (
  29. c []byte
  30. err error
  31. conf *Config
  32. )
  33. if c, err = ioutil.ReadFile(*path); err != nil {
  34. panic(err)
  35. }
  36. //yaml.Unmarshal反序列化映射到Config
  37. if err = yaml.Unmarshal(c, &conf); err != nil {
  38. panic(err)
  39. }
  40. //数据读入内存
  41. Prd = conf.Prd
  42. Debug = conf.Debug
  43. DB = &conf.DB
  44. IMDB = &conf.ImDB
  45. Log = &conf.Log
  46. RedisAddr = conf.RedisAddr
  47. RedisPassword = conf.RedisPassword
  48. SrvAddr = conf.SrvAddr
  49. MQ = &conf.MQ
  50. ES = &conf.ES
  51. }