summaryrefslogtreecommitdiffstats
path: root/config/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'config/config.go')
-rw-r--r--config/config.go35
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
+}