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
}