Add support for configs
This commit is contained in:
34
internal/config/load.go
Normal file
34
internal/config/load.go
Normal 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)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user