init.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package comp
  2. import (
  3. "encoding/json"
  4. "flag"
  5. "git.wanbits.io/joe/franklin/protos"
  6. "git.wanbits.io/joe/kettle/log"
  7. "git.wanbits.io/joe/kettle/mac"
  8. "git.wanbits.io/joe/kettle/mq/mqsvr"
  9. "git.wanbits.io/joe/kettle/utl"
  10. "git.wanbits.io/joe/kettle/rds"
  11. "os"
  12. "strconv"
  13. "strings"
  14. "time"
  15. )
  16. var (
  17. GConfile string // 配置文件
  18. GTestConfile string // 测试配置文件
  19. GCmd string // 启动命令
  20. GBootAt string // 启动时间
  21. Gmi mac.MachMeta
  22. )
  23. func init() {
  24. mac.GetMachInfo(&Gmi)
  25. }
  26. func InitEnv(defConf, defTest string) {
  27. flag.StringVar(&GConfile, "conf", defConf, "specify config file")
  28. flag.StringVar(&GTestConfile, "test", defTest, "config file test")
  29. flag.Parse()
  30. GCmd = strings.Join(os.Args, " ")
  31. GBootAt = time.Now().Format("2006-01-02 15:04:05")
  32. }
  33. func InitAll(c * protos.AppConf) {
  34. var err error
  35. _, err = ConnectEtcd(c.Zoo)
  36. utl.ErrPanic(err)
  37. // log
  38. logger := log.NewSLogger(c.Log.Path, c.Log.Level)
  39. log.SetDefaultLogger(logger)
  40. // redis
  41. rdsjs, err := GEtcdc.Get(PathRedis(c))
  42. utl.ErrPanic(err)
  43. var redisConf protos.RedisConf
  44. err = json.Unmarshal(rdsjs, &redisConf)
  45. utl.ErrPanic(err)
  46. GRds, err = rds.Connect(redisConf.Addrs[0], redisConf.Password, int(redisConf.Db))
  47. utl.ErrPanic(err)
  48. // mq
  49. mqjs, err := GEtcdc.Get(PathMq(c))
  50. utl.ErrPanic(err)
  51. var mqConf protos.NatsConf
  52. err = json.Unmarshal(mqjs, &mqConf)
  53. utl.ErrPanic(err)
  54. clientId := strconv.FormatUint(c.Id, 10)
  55. GMq, err = mqsvr.NewStan(mqConf.Addrs, mqConf.Username, mqConf.Password, mqConf.ClusterId, clientId, clientId)
  56. utl.ErrPanic(err)
  57. }