一物一码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

init_cfg.go 908 B

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