Files
triggerssmith/internal/app/app.go
2025-11-30 10:09:53 +02:00

39 lines
758 B
Go

package app
import (
"sync/atomic"
"git.oblat.lv/alex/triggerssmith/internal/config"
"git.oblat.lv/alex/triggerssmith/internal/server"
)
type App struct {
configuration atomic.Value // *config.Config
ls *server.LiveServer
}
// NewApp creates a new instance of the App struct. Always returns ErrNilPointerWarn.
func NewApp() (*App, error) {
app := &App{}
return app, ErrNilPointerWarn
}
func (a *App) LoadConfiguration(cfg *config.Config) {
a.configuration.Store(cfg)
}
func (a *App) Configuration() *config.Config {
cfg := a.configuration.Load()
if cfg == nil {
return nil
}
return cfg.(*config.Config)
}
func (a *App) Server() *server.LiveServer {
if a.ls == nil {
a.ls, _ = server.Create("main_server")
}
return a.ls
}