func()

in pkg/build/inline.go [68:134]


func (n *Inliner) BundleFiles(ctx context.Context, data *bundle.BundleBuilder, bundlePath string) (*bundle.Bundle, error) {
	bundleURL, err := url.Parse(bundlePath)
	if err != nil {
		return nil, err
	}
	bundleURL, err = makeAbsForFileScheme(bundleURL)
	if err != nil {
		return nil, err
	}
	if !filepath.IsAbs(bundleURL.Path) {
		return nil, fmt.Errorf("bundlePath must be absolute but was %s", bundleURL.Path)
	}
	var comps []*bundle.Component
	for _, f := range data.ComponentFiles {
		furl, err := f.ParsedURL()
		if err != nil {
			return nil, err
		}
		f.URL = makeAbsWithParent(bundleURL, furl).String()

		contents, err := n.readFile(ctx, f)
		if err != nil {
			return nil, fmt.Errorf("error reading file %q: %v", f.URL, err)
		}
		uns, err := converter.FromFileName(f.URL, contents).ToUnstructured()
		if err != nil {
			return nil, err
		}

		kind := uns.GetKind()
		switch kind {
		case "Component":
			c, err := converter.FromFileName(f.URL, contents).ToComponent()
			if err != nil {
				return nil, err
			}
			comps = append(comps, c)
		case "ComponentBuilder":
			c, err := converter.FromFileName(f.URL, contents).ToComponentBuilder()
			if err != nil {
				return nil, err
			}
			if c.GetName() == "" && data.ComponentNamePolicy == "SetAndComponent" {
				c.ObjectMeta.Name = strings.Join([]string{data.SetName, data.Version, c.ComponentName, c.Version}, "-")
			}
			comp, err := n.ComponentFiles(ctx, c, f.URL)
			if err != nil {
				return nil, err
			}
			comps = append(comps, comp)
		default:
			return nil, fmt.Errorf("unsupported kind for component: %q; only supported kinds are Component and ComponentBuilder", kind)
		}
	}

	newBundle := &bundle.Bundle{
		TypeMeta: metav1.TypeMeta{
			APIVersion: "bundle.gke.io/v1alpha1",
			Kind:       "Bundle",
		},
		ObjectMeta: *data.ObjectMeta.DeepCopy(),
		SetName:    data.SetName,
		Version:    data.Version,
		Components: comps,
	}
	return newBundle, nil
}