diff options
Diffstat (limited to 'config/config.go')
-rw-r--r-- | config/config.go | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/config/config.go b/config/config.go new file mode 100644 index 0000000..71bc8dc --- /dev/null +++ b/config/config.go @@ -0,0 +1,35 @@ +package config + +import ( + "fmt" + "os" + + "gopkg.in/yaml.v3" +) + +type Config struct { + Git struct { + ScanPath string `yaml:"scanPath"` + } `yaml:"git"` + Template struct { + Dir string `yaml:"dir"` + } `yaml:"template"` + Meta struct { + Title string `yaml:"title"` + Description string `yaml:"description"` + } `yaml:"meta"` +} + +func Read(f string) (*Config, error) { + b, err := os.ReadFile(f) + if err != nil { + return nil, fmt.Errorf("reading config: %w", err) + } + + c := Config{} + if err := yaml.Unmarshal(b, &c); err != nil { + return nil, fmt.Errorf("parsing config: %w", err) + } + + return &c, nil +} |