1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2024-12-16 11:09:33 +02:00
sap-jenkins-library/pkg/config/defaults.go

44 lines
854 B
Go

package config
import (
"fmt"
"io"
"io/ioutil"
"github.com/ghodss/yaml"
"github.com/pkg/errors"
)
// PipelineDefaults defines the structure of the pipeline defaults
type PipelineDefaults struct {
Defaults []Config `json:"defaults"`
}
// ReadPipelineDefaults loads defaults and returns its content
func (d *PipelineDefaults) ReadPipelineDefaults(defaultSources []io.ReadCloser) error {
defer func() {
for _, def := range defaultSources {
def.Close()
}
}()
for _, def := range defaultSources {
var c Config
var err error
content, err := ioutil.ReadAll(def)
if err != nil {
return errors.Wrapf(err, "error reading %v", def)
}
err = yaml.Unmarshal(content, &c)
if err != nil {
return NewParseError(fmt.Sprintf("error unmarshalling %q: %v", content, err))
}
d.Defaults = append(d.Defaults, c)
}
return nil
}