Files
zurg/internal/config/load.go
Ben Sarmiento c8334ecb3b Hotfix
2023-11-27 21:50:00 +01:00

32 lines
626 B
Go

package config
import (
"fmt"
"os"
"go.uber.org/zap"
"gopkg.in/yaml.v3"
)
func LoadZurgConfig(filename string, log *zap.SugaredLogger) (ConfigInterface, error) {
log.Debug("Loading config file ", filename)
content, err := os.ReadFile(filename)
if err != nil {
return nil, err
}
var initialConfig ZurgConfig
if err := yaml.Unmarshal(content, &initialConfig); err != nil {
return nil, err
}
switch initialConfig.Version {
case "v1":
log.Debug("Detected config version: v1")
return loadV1Config(content, log)
default:
return nil, fmt.Errorf("invalid config version: %s", initialConfig.Version)
}
}