package sitebuilder import ( "lmika.dev/lmika/hugo-cms/models" "lmika.dev/lmika/hugo-cms/providers/bus" ) type SiteBuildingTracker struct { bus *bus.Bus isBuildingState map[int64]models.Site } func NewSiteBuildingTracker(bus *bus.Bus) *SiteBuildingTracker { return &SiteBuildingTracker{ bus: bus, isBuildingState: map[int64]models.Site{}, } } func (sbt *SiteBuildingTracker) Listen() { sub := sbt.bus.Subscribe() for e := range sub.C { switch e.Type { case models.EventSiteBuildingStart: site := e.Data.(models.Site) sbt.isBuildingState[site.ID] = site case models.EventSiteBuildingDone: delete(sbt.isBuildingState, e.Data.(models.Site).ID) } } }