nginx-proxy-manager/backend/internal/nginx/templates.go

32 lines
615 B
Go

package nginx
import (
"io/fs"
"io/ioutil"
"npm/embed"
"github.com/aymerick/raymond"
)
// WriteTemplate will load, parse and write a template file
func WriteTemplate(templateName, outputFilename string, data map[string]interface{}) error {
// get template file content
subFs, _ := fs.Sub(embed.NginxFiles, "nginx")
template, err := fs.ReadFile(subFs, templateName)
if err != nil {
return err
}
// Render
parsedFile, err := raymond.Render(string(template), data)
if err != nil {
return err
}
// Write it
// nolint: gosec
return ioutil.WriteFile(outputFilename, []byte(parsedFile), 0644)
}