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 }