]> git.r.bdr.sh - rbdr/mobius/blob - internal/mobius/config.go
Extensive refactor and clean up
[rbdr/mobius] / internal / mobius / config.go
1 package mobius
2
3 import (
4 "github.com/go-playground/validator/v10"
5 "github.com/jhalter/mobius/hotline"
6 "gopkg.in/yaml.v3"
7 "log"
8 "os"
9 )
10
11 func LoadConfig(path string) (*hotline.Config, error) {
12 var config hotline.Config
13
14 yamlFile, err := os.ReadFile(path)
15 if err != nil {
16 return nil, err
17 }
18 err = yaml.Unmarshal(yamlFile, &config)
19 if err != nil {
20 log.Fatalf("Unmarshal: %v", err)
21 }
22
23 validate := validator.New()
24 err = validate.Struct(config)
25 if err != nil {
26 return nil, err
27 }
28
29 return &config, nil
30 }