github.com/fredbi/git-chglog@v0.0.0-20190706071416-d35c598eac81/cmd/git-chglog/config_loader.go (about) 1 package main 2 3 import ( 4 "io/ioutil" 5 6 yaml "gopkg.in/yaml.v2" 7 ) 8 9 // ConfigLoader ... 10 type ConfigLoader interface { 11 Load(string) (*Config, error) 12 } 13 14 type configLoaderImpl struct { 15 } 16 17 // NewConfigLoader ... 18 func NewConfigLoader() ConfigLoader { 19 return &configLoaderImpl{} 20 } 21 22 func (loader *configLoaderImpl) Load(path string) (*Config, error) { 23 bytes, err := ioutil.ReadFile(path) 24 if err != nil { 25 return nil, err 26 } 27 28 config := &Config{} 29 err = yaml.Unmarshal(bytes, config) 30 if err != nil { 31 return nil, err 32 } 33 34 return config, nil 35 }