bootstrapper.go 935 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package bootstrap
  2. import (
  3. "github.com/kataras/iris/v12"
  4. recover2 "github.com/kataras/iris/v12/middleware/recover"
  5. "github.com/kataras/iris/v12/sessions"
  6. "time"
  7. )
  8. type Configurator func(*Bootstrapper)
  9. type Bootstrapper struct {
  10. *iris.Application
  11. AppName string
  12. AppOwner string
  13. AppSpawnDate time.Time
  14. Sessions *sessions.Sessions
  15. }
  16. func New(appName, appOwner string, cfgs ...Configurator) *Bootstrapper {
  17. b := &Bootstrapper{
  18. Application: iris.New(),
  19. AppName: appName,
  20. AppOwner: appOwner,
  21. AppSpawnDate: time.Now(),
  22. }
  23. for _, cfg := range cfgs {
  24. cfg(b)
  25. }
  26. return b
  27. }
  28. func (b *Bootstrapper) Configure(cs ...Configurator) {
  29. for _, c := range cs {
  30. c(b)
  31. }
  32. }
  33. func (b *Bootstrapper) Bootstrap() *Bootstrapper {
  34. b.Use(recover2.New())
  35. return b
  36. }
  37. func (b *Bootstrapper) Listen(addr string, cfgs ...iris.Configurator) {
  38. err := b.Run(iris.Addr(addr), cfgs...)
  39. if err != nil {
  40. return
  41. }
  42. }