1
0
Fork 0
mirror of https://git.sr.ht/~ashkeel/strimertul synced 2024-09-20 02:00:49 +00:00
strimertul/modules/manager.go
2021-12-09 10:46:14 +01:00

47 lines
824 B
Go

package modules
import "github.com/sirupsen/logrus"
type ModuleStatus struct {
Enabled bool
Working bool
Data interface{}
StatusString string
}
func (m ModuleStatus) String() string {
return m.StatusString
}
type Module interface {
Status() ModuleStatus
Close() error
}
type ModuleID string
const (
ModuleLoyalty ModuleID = "loyalty"
ModuleTwitch ModuleID = "twitch"
ModuleStulbe ModuleID = "stulbe"
ModuleDB ModuleID = "db"
ModuleHTTP ModuleID = "http"
)
type Manager struct {
Modules map[ModuleID]Module
logger logrus.FieldLogger
}
func NewManager(log logrus.FieldLogger) *Manager {
return &Manager{
Modules: make(map[ModuleID]Module),
logger: log,
}
}
func (m *Manager) Logger(module ModuleID) logrus.FieldLogger {
return m.logger.WithField("module", module)
}