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  }