func()

in pkg/build/inline.go [224:272]


func (n *Inliner) objectFiles(ctx context.Context, objFiles []bundle.File, ref bundle.ComponentReference, componentPath *url.URL) ([]*unstructured.Unstructured, map[string][]*unstructured.Unstructured, error) {
	var newObjs []*unstructured.Unstructured
	objTmplBuilders := make(map[string][]*unstructured.Unstructured)
	for _, cf := range objFiles {
		furl, err := cf.ParsedURL()
		if err != nil {
			return nil, nil, err
		}
		cf.URL = makeAbsWithParent(componentPath, furl).String()

		contents, err := n.readFile(ctx, cf)
		if err != nil {
			return nil, nil, fmt.Errorf("error reading file %v for component %v: %v", cf, ref, err)
		}
		ext := filepath.Ext(cf.URL)
		if ext == ".yaml" && multiDoc.Match(contents) {
			splat := multiDoc.Split(string(contents), -1)
			for i, s := range splat {
				if onlyWhitespace.MatchString(s) {
					continue
				}
				obj, err := converter.FromYAMLString(s).ToUnstructured()
				if err != nil {
					return nil, nil, fmt.Errorf("converting multi-doc object number %d for component %v, %v", i, ref, err)
				}
				if obj.GetKind() == "ObjectTemplateBuilder" {
					if objTmplBuilders[cf.URL] == nil {
						objTmplBuilders[cf.URL] = []*unstructured.Unstructured{obj}
					} else {
						objTmplBuilders[cf.URL] = append(objTmplBuilders[cf.URL], obj)
					}
				} else {
					newObjs = append(newObjs, obj)
				}
			}
		} else {
			obj, err := converter.FromFileName(cf.URL, contents).ToUnstructured()
			if err != nil {
				return nil, nil, fmt.Errorf("for component %q, %v", ref, err)
			}
			if obj.GetKind() == "ObjectTemplateBuilder" {
				objTmplBuilders[cf.URL] = []*unstructured.Unstructured{obj}
			} else {
				newObjs = append(newObjs, obj)
			}
		}
	}
	return newObjs, objTmplBuilders, nil
}