diff --git a/config/config.go b/config/config.go index 75534dcd0..3e951e3ff 100644 --- a/config/config.go +++ b/config/config.go @@ -3,6 +3,7 @@ package config import ( + "io" "io/ioutil" yaml "gopkg.in/yaml.v1" @@ -116,3 +117,13 @@ func Load(file string) (config Project, err error) { err = yaml.Unmarshal(data, &config) return } + +// Load config via io.Reader +func LoadReader(fd io.Reader) (config Project, err error) { + data, err := ioutil.ReadAll(fd) + if err != nil { + return config, err + } + err = yaml.Unmarshal(data, &config) + return +} diff --git a/config/config_test.go b/config/config_test.go new file mode 100644 index 000000000..8f14d64d9 --- /dev/null +++ b/config/config_test.go @@ -0,0 +1,28 @@ +package config + +import ( + "strings" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestRepo(t *testing.T) { + var assert = assert.New(t) + r := Repo{"goreleaser", "godownloader"} + assert.Equal("goreleaser/godownloader", r.String(), "not equal") +} + +func TestLoadReader(t *testing.T) { + var conf = ` +homepage: &homepage http://goreleaser.github.io +fpm: + homepage: *homepage +` + var assert = assert.New(t) + buf := strings.NewReader(conf) + prop, err := LoadReader(buf) + + assert.Nil(err) + assert.Equal("http://goreleaser.github.io", prop.FPM.Homepage, "yaml did not load correctly") +}