1
0
Fork 0
impulse/internal/challenge/runner.go
2026-05-14 20:19:22 +03:00

35 lines
595 B
Go

package challenge
import "os"
func Run(configPath, eventsPath string) (string, error) {
cfgFile, err := os.Open(configPath)
if err != nil {
return "", err
}
defer cfgFile.Close()
eventsFile, err := os.Open(eventsPath)
if err != nil {
return "", err
}
defer eventsFile.Close()
cfg, err := readConfig(cfgFile)
if err != nil {
return "", err
}
events, err := readEvents(eventsFile)
if err != nil {
return "", err
}
engine, err := NewEngine(cfg)
if err != nil {
return "", err
}
for _, event := range events {
engine.Apply(event)
}
return engine.Output(), nil
}