func LoadFieldsWithTemplate()

in pkg/genlib/fields/load.go [78:105]


func LoadFieldsWithTemplate(ctx context.Context, fieldYamlPath string) (Fields, error) {
	fieldsFileContent, err := os.ReadFile(fieldYamlPath)
	if err != nil {
		return nil, err
	}

	var fieldsContent string

	key := strings.TrimSuffix(filepath.Base(fieldYamlPath), filepath.Ext(fieldYamlPath))
	keyEntry := fmt.Sprintf("- key: %s\n  fields:\n", key)
	for _, line := range strings.Split(string(fieldsFileContent), "\n") {
		keyEntry += `    ` + line + "\n"
	}

	fieldsContent += keyEntry
	if len(fieldsContent) == 0 {
		return nil, ErrNotFound
	}

	fieldsFromYaml, err := loadFieldsFromYaml([]byte(fieldsContent))
	if err != nil {
		return nil, err
	}

	fields := collectFields(fieldsFromYaml, "")

	return normaliseFields(fields)
}