init.go 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package comp
  2. import (
  3. "encoding/json"
  4. "flag"
  5. pb "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/rds"
  10. "git.wanbits.io/joe/kettle/utl"
  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 *pb.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. rdskv, err := GEtcdc.Get(PathRedis(c))
  42. utl.ErrPanic(err)
  43. if len(rdskv.Kvs) <= 0 {
  44. utl.ErrPanic(utl.ErrContainerEmpty)
  45. }
  46. var redisConf pb.RedisConf
  47. err = json.Unmarshal(rdskv.Kvs[0].Value, &redisConf)
  48. utl.ErrPanic(err)
  49. GRds, err = rds.Connect(redisConf.Addrs[0], redisConf.Password, int(redisConf.Db))
  50. utl.ErrPanic(err)
  51. // mq
  52. mqjs, err := GEtcdc.Get(PathMq(c))
  53. utl.ErrPanic(err)
  54. if len(mqjs.Kvs) <= 0 {
  55. utl.ErrPanic(utl.ErrContainerEmpty)
  56. }
  57. var mqConf pb.NatsConf
  58. err = json.Unmarshal(mqjs.Kvs[0].Value, &mqConf)
  59. utl.ErrPanic(err)
  60. clientId := strconv.FormatUint(c.Id, 10)
  61. GMq, err = mqsvr.NewStan(mqConf.Addrs, mqConf.Username, mqConf.Password, mqConf.ClusterId, clientId, clientId)
  62. utl.ErrPanic(err)
  63. }