From 5be3a1d4e2de02de9209a2748d061af9808d84ff Mon Sep 17 00:00:00 2001 From: kekskurse Date: Tue, 26 Aug 2025 12:55:51 +0200 Subject: [PATCH] feat: add confd folder --- config.go | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/config.go b/config.go index e3d6e62..a3a40bb 100644 --- a/config.go +++ b/config.go @@ -63,6 +63,39 @@ func ReadFromFile(path string) (config, error) { return config{}, fmt.Errorf(ErrWrapTemplate, ErrCantParseConfigFile, err) } + cfgFolder := "/etc/scron/conf.d/" + + if _, err := os.Stat(cfgFolder); os.IsNotExist(err) { + return c, nil + } + + entries, err := os.ReadDir("./") + if err != nil { + return c, fmt.Errorf("cant scan confd folder: %w", err) + } + + for _, file := range entries { + if !strings.HasSuffix(file.Name(), ".yml") { + continue + } + + fileContent, err := os.ReadFile(cfgFolder + file.Name()) + if err != nil { + return config{}, fmt.Errorf("cant read config file %s: %w", file.Name(), err) + } + + fileConfig := config{} + + err = yaml.Unmarshal(fileContent, &fileConfig) + if err != nil { + return config{}, fmt.Errorf("cant unmarshal yml config: %w", err) + } + + c.Jobs = append(c.Jobs, fileConfig.Jobs...) + c.Notification = append(c.Notification, fileConfig.Notification...) + + } + return c, nil }