config.go 828 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package config
  2. import (
  3. "github.com/go-ini/ini"
  4. "log"
  5. )
  6. var IniConf *ini.File
  7. var ipath string
  8. type changeCallback func()
  9. var changeCallbackList = []changeCallback{}
  10. /*func init() {
  11. pwd, _ := os.Getwd()
  12. ipath = filepath.Join(pwd, "config.ini")
  13. var err error
  14. /*fs := flag.NewFlagSet("", flag.ContinueOnError)
  15. fp := fs.String("f", "", "config file path")
  16. fs.Parse(os.Args[1:])
  17. if *fp != "" {
  18. ipath = *fp
  19. }
  20. IniConf, err = ini.Load(ipath)
  21. if err != nil {
  22. log.Fatal(err)
  23. }
  24. */
  25. func Reload(cpath string) {
  26. if cpath == "" {
  27. cpath = ipath
  28. }
  29. iniConf, err := ini.Load(cpath)
  30. if err != nil {
  31. log.Println(err)
  32. return
  33. } else {
  34. IniConf = iniConf
  35. }
  36. for _, cb := range changeCallbackList {
  37. cb()
  38. }
  39. ipath = cpath
  40. }
  41. func RegistChangeCallback(cb changeCallback) {
  42. changeCallbackList = append(changeCallbackList, cb)
  43. }