MCPcopy Create free account
hub / github.com/MMadmer/EpicAssetsNotifyBot / New

Function New

internal/app/bootstrap.go:25–55  ·  view source on GitHub ↗
(projectRoot string)

Source from the content-addressed store, hash-verified

23}
24
25func New(projectRoot string) (*Application, error) {
26 settings := config.Load(projectRoot)
27 if err := configureLogging(settings.LogPath); err != nil {
28 return nil, err
29 }
30
31 localizer, err := i18n.New(settings.Locale, config.DefaultLocale, settings.LocalesDir)
32 if err != nil {
33 return nil, fmt.Errorf("create localizer: %w", err)
34 }
35
36 store, err := sqlitestore.New(settings.DatabaseURL)
37 if err != nil {
38 return nil, fmt.Errorf("open sqlite store: %w", err)
39 }
40
41 browserSource, err := fab.NewBrowserSource()
42 if err != nil {
43 _ = store.Close()
44 return nil, fmt.Errorf("create fab browser source: %w", err)
45 }
46
47 scraper := fab.NewScraper(browserSource)
48 runtime, err := botdiscord.New(settings, localizer, &sqliteAdapter{inner: store}, scraper)
49 if err != nil {
50 _ = store.Close()
51 return nil, err
52 }
53
54 return &Application{runtime: runtime}, nil
55}
56
57func (a *Application) Run(ctx context.Context) error {
58 if a == nil || a.runtime == nil {

Callers 1

mainFunction · 0.92

Calls 6

LoadFunction · 0.92
NewFunction · 0.92
NewBrowserSourceFunction · 0.92
NewScraperFunction · 0.92
configureLoggingFunction · 0.85
CloseMethod · 0.65

Tested by

no test coverage detected