func Loader()

in plugin/source/multi/multi.go [74:100]


func Loader(config map[string]interface{}) (go2chef.Source, error) {
	s := &Source{
		logger:      go2chef.GetGlobalLogger(),
		SourceName:  "",
		SourceSpecs: []map[string]interface{}{},
	}
	if err := mapstructure.Decode(config, s); err != nil {
		return nil, err
	}
	if s.SourceName == "" {
		s.SourceName = TypeName
	}

	for _, spec := range s.SourceSpecs {
		stype, err := go2chef.GetType(spec)
		if err != nil {
			return nil, err
		}
		src, err := go2chef.GetSource(stype, spec)
		if err != nil {
			return nil, err
		}
		s.sources = append(s.sources, src)
	}

	return s, nil
}