package templates import ( _ "embed" "fmt" "hoster/internals/conf" "os" "path/filepath" "text/template" "github.com/gookit/goutil/fsutil" ) func Execute(name string, outPath string, context any) error { tplPath := filepath.Join(conf.App.MustString(fmt.Sprintf("templates.%s", name))) if !fsutil.IsFile(tplPath) { return fmt.Errorf("template file \"%s\" doesn't exist", tplPath) } outFile, err := os.Create(outPath) if err != nil { return err } defer outFile.Close() tpl, err := os.ReadFile(tplPath) if err != nil { return err } err = template.Must(template.New("tpl").Parse(string(tpl))).Execute(outFile, context) if err != nil { return err } return nil }