wireguard-dashboard/utils/template.go
2024-03-14 15:23:16 +08:00

54 lines
1.1 KiB
Go

package utils
import (
"gitee.ltd/lxh/logger/log"
"html/template"
"os"
)
type templateUtils struct{}
func Template() templateUtils {
return templateUtils{}
}
// Parse
// @description: 解析指定模板文件
// @receiver templateUtils
// @param filepath
// @return parseTemplate
// @return err
func (templateUtils) Parse(filepath string) (parseTemplate *template.Template, err error) {
file, err := os.ReadFile(filepath)
if err != nil {
return
}
parseTemplate, err = template.New("wg.conf").Parse(string(file))
return
}
// Execute
// @description: 序列化数据到文件中
// @receiver templateUtils
// @param fromTemplate
// @param data
// @param filePath
// @return err
func (templateUtils) Execute(fromTemplate *template.Template, data any, filePath string) (err error) {
wg0Conf, err := os.Create(filePath)
if err != nil {
log.Errorf("创建文件[%s]失败: %v", filePath, err.Error())
return
}
defer func() {
if err = wg0Conf.Close(); err != nil {
log.Errorf("关闭文件[%s]失败: %v", filePath, err.Error())
return
}
}()
return fromTemplate.Execute(wg0Conf, data)
}