func renderTemplate()

in renderer/renderer.go [71:101]


func renderTemplate(tmpl *template.Template, conf *config.Config, fileExtension string, gvds []types.GroupVersionDetails) error {
	switch conf.OutputMode {
	case config.OutputModeSingle:
		fileName := fmt.Sprintf("%s.%s", "out", fileExtension)
		file, err := createOutFile(conf.OutputPath, false, fileName)
		defer file.Close()
		if err != nil {
			return err
		}

		if err := tmpl.ExecuteTemplate(file, mainTemplate, gvds); err != nil {
			return err
		}

	case config.OutputModeGroup:
		for _, gvd := range gvds {
			fileName := fmt.Sprintf("%s.%s", gvd.Group, fileExtension)
			file, err := createOutFile(conf.OutputPath, true, fileName)
			defer file.Close()
			if err != nil {
				return err
			}

			if err := tmpl.ExecuteTemplate(file, mainTemplate, []types.GroupVersionDetails{gvd}); err != nil {
				return err
			}
		}
	}

	return nil
}