Add support for configs

This commit is contained in:
Ben Sarmiento
2023-10-18 21:09:25 +02:00
parent f9b5b1efac
commit 4650213218
19 changed files with 359 additions and 48 deletions

34
internal/config/load.go Normal file
View File

@@ -0,0 +1,34 @@
package config
import (
"fmt"
"os"
"gopkg.in/yaml.v3"
)
type ConfigInterface interface {
GetVersion() 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)
}
}