智慧食堂
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

init_cfg.go 1.0 KiB

před 1 rokem
před 1 rokem
před 1 rokem
před 1 rokem
před 1 rokem
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. Log *LogCfg
  17. )
  18. //初始化配置文件,将cfg.yml读入到内存
  19. func InitCfg() {
  20. //用指定的名称、默认值、使用信息注册一个string类型flag。
  21. path := flag.String("c", "etc/cfg.yml", "config file")
  22. //解析命令行参数写入注册的flag里。
  23. //解析之后,flag的值可以直接使用。
  24. flag.Parse()
  25. var (
  26. c []byte
  27. err error
  28. conf *Config
  29. )
  30. if c, err = ioutil.ReadFile(*path); err != nil {
  31. panic(err)
  32. }
  33. //yaml.Unmarshal反序列化映射到Config
  34. if err = yaml.Unmarshal(c, &conf); err != nil {
  35. panic(err)
  36. }
  37. //数据读入内存
  38. Prd = conf.Prd
  39. Debug = conf.Debug
  40. DB = &conf.DB
  41. Log = &conf.Log
  42. RedisAddr = conf.RedisAddr
  43. RedisPassword = conf.RedisPassword
  44. SmartCanteenPay = conf.SmartCanteenPay
  45. SrvAddr = conf.SrvAddr
  46. }