package config

import (
	"os"
	"path/filepath"
	"text/template"
)

type Templates map[string]*template.Template

func LoadAgentConfigTemplates(dir string) (Templates, error) {
	templates := make(Templates)
	err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return err
		}
		if info.IsDir() || filepath.Ext(path) != ".yaml" {
			return nil
		}
		contents, err := os.ReadFile(path)
		if err != nil {
			return err
		}
		tmpl, err := template.New("").Parse(string(contents))
		if err != nil {
			return err
		}
		subpath, err := filepath.Rel(dir, path)
		if err != nil {
			return err
		}
		templates[subpath] = tmpl
		return nil
	})
	if err != nil {
		return nil, err
	}
	return templates, nil
}
