func DeploymentsParse()

in pkg/provider/provider.go [101:135]


func DeploymentsParse(deploymentFiles []string, deploymentVars map[string]string) ([]Resource, error) {
	var fileList []string
	for _, name := range deploymentFiles {
		if file, err := os.Stat(name); err == nil && file.IsDir() {
			if err := filepath.Walk(name, func(path string, f os.FileInfo, err error) error {
				if filepath.Ext(path) == ".yaml" || filepath.Ext(path) == ".yml" {
					fileList = append(fileList, path)
				}
				return nil
			}); err != nil {
				return nil, fmt.Errorf("error reading directory: %v", err)
			}
		} else {
			fileList = append(fileList, name)
		}
	}

	deploymentObjects := make([]Resource, 0)
	for _, name := range fileList {
		absFileName := strings.TrimSuffix(filepath.Base(name), filepath.Ext(name))
		content, err := os.ReadFile(name)
		if err != nil {
			log.Fatalf("Error reading file %v:%v", name, err)
		}
		// Don't parse file with the suffix "noparse".
		if !strings.HasSuffix(absFileName, "noparse") {
			content, err = applyTemplateVars(content, deploymentVars)
			if err != nil {
				return nil, fmt.Errorf("couldn't apply template to file %s: %v", name, err)
			}
		}
		deploymentObjects = append(deploymentObjects, Resource{FileName: name, Content: content})
	}
	return deploymentObjects, nil
}