main.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package main
  2. import (
  3. "assetcenter/api"
  4. "assetcenter/bus"
  5. "assetcenter/conf"
  6. "assetcenter/db"
  7. "assetcenter/log"
  8. "flag"
  9. "fmt"
  10. "time"
  11. "go.uber.org/dig"
  12. "infish.cn/comm"
  13. )
  14. var confFile = flag.String("conf", "./app.yaml", "conf file")
  15. var appPort = flag.Int("port", 0, "conf app port")
  16. var appNatsUrl = flag.String("nats", "", "conf nats url")
  17. var saverHost = flag.String("minio", "", "conf minio host url")
  18. func BuildApp() *dig.Container {
  19. app := dig.New()
  20. _ = app.Provide(func() (*conf.AppConf, error) {
  21. ret, err := conf.NewAppConf(*confFile)
  22. if len(*appNatsUrl) > 0 {
  23. ret.Nats.Url = *appNatsUrl
  24. }
  25. if *appPort > 0 {
  26. ret.Port = int32(*appPort)
  27. }
  28. if len(*saverHost) > 0 {
  29. ret.Minio.Endpoint = *saverHost
  30. }
  31. ret.TrimLocalUrl = "//" + ret.Minio.Endpoint + "/"
  32. return ret, err
  33. })
  34. _ = app.Provide(db.NewMongoDB)
  35. _ = app.Provide(db.NewRedisClient)
  36. _ = app.Provide(bus.NewNatsBus)
  37. // _ = app.Provide(func(app *conf.AppConf) (*etcd.Cli, error) {
  38. // return etcd.NewEtcdCli(&etcd.CliConfig{
  39. // Endpoints: app.Etcd.Endpoints,
  40. // UserName: app.Etcd.UserName,
  41. // Password: app.Etcd.Password,
  42. // DialTimeout: time.Second * time.Duration(app.Etcd.DialTimeout),
  43. // })
  44. // })
  45. // repository
  46. //_ = app.Provide(repository.NewExecuteSnapshotRepository)
  47. // _ = app.Provide(bus.NewEventBus)
  48. // _ = app.Provide(collector.NewPinkCollector)
  49. // _ = app.Provide(executor.NewPinkGroupManaged)
  50. // _ = app.Provide(executor.NewPinkExecutor)
  51. // _ = app.Provide(schedule.NewPinkScheduler)
  52. // _ = app.Provide(node.NewPinkNode)
  53. // _ = app.Provide(handler.NewPinkWebHandler)
  54. _ = app.Provide(api.NewHttpService)
  55. return app
  56. }
  57. func main() {
  58. flag.Parse()
  59. app := BuildApp()
  60. err := app.Invoke(func(svc *api.Service, config *conf.AppConf, bus *comm.NatsBus) error {
  61. go bus.Run(nil)
  62. go func() {
  63. time.Sleep(time.Second)
  64. fmt.Println("assetcenter started")
  65. }()
  66. svc.Run()
  67. return nil
  68. })
  69. if err != nil {
  70. log.Errorf("the pink service start fail %+v", err)
  71. panic(err)
  72. }
  73. }