func processCodeFolders()

in internal/cmd/integrations/apply.go [648:705]


func processCodeFolders(javascriptFolder string, jsonnetFolder string) (codeMap map[string]map[string]string, err error) {
	codeMap = make(map[string]map[string]string)
	codeMap["JavaScriptTask"] = make(map[string]string)
	codeMap["JsonnetMapperTask"] = make(map[string]string)
	rJavaScriptFiles := regexp.MustCompile(`javascript_\d{1,2}.js`)
	rJsonnetFiles := regexp.MustCompile(`datatransformer_\d{1,2}.jsonnet`)
	var javascriptNames, jsonnetNames []string

	_ = filepath.Walk(javascriptFolder, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}
		if !info.IsDir() {
			javascriptFile := filepath.Base(path)
			if rJavaScriptFiles.MatchString(javascriptFile) {
				clilog.Info.Printf("Found JavaScript file for integration: %s\n", javascriptFile)
				javascriptNames = append(javascriptNames, javascriptFile)
			}
		}
		return nil
	})

	if len(javascriptNames) > 0 {
		for _, javascriptName := range javascriptNames {
			javascriptBytes, err := utils.ReadFile(path.Join(javascriptFolder, javascriptName))
			if err != nil {
				return nil, err
			}
			codeMap["JavaScriptTask"][strings.ReplaceAll(getFilenameWithoutExtension(javascriptName), "javascript_", "")] = strings.ReplaceAll(string(javascriptBytes), "\n", "\\n")
		}
	}

	_ = filepath.Walk(jsonnetFolder, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}
		if !info.IsDir() {
			jsonnetFile := filepath.Base(path)
			if rJsonnetFiles.MatchString(jsonnetFile) {
				clilog.Info.Printf("Found Jsonnet file for integration: %s\n", jsonnetFile)
				jsonnetNames = append(jsonnetNames, jsonnetFile)
			}
		}
		return nil
	})

	if len(jsonnetNames) > 0 {
		for _, jsonnetName := range jsonnetNames {
			jsonnetBytes, err := utils.ReadFile(path.Join(jsonnetFolder, jsonnetName))
			if err != nil {
				return nil, err
			}
			codeMap["JsonnetMapperTask"][strings.ReplaceAll(getFilenameWithoutExtension(jsonnetName), "datatransformer_", "")] = strings.ReplaceAll(string(jsonnetBytes), "\n", "\\n")
		}
	}

	return codeMap, nil
}