package config import ( "fmt" "os" "gopkg.in/yaml.v3" ) type ConfigInterface interface { GetVersion() string GetToken() string GetPort() string GetDirectories() []string MeetsConditions(directory, fileID, fileName string) bool } func LoadZurgConfig(filename string) (ConfigInterface, error) { 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": return loadV1Config(content) default: return nil, fmt.Errorf("invalid config version: %s", initialConfig.Version) } }