First version
This commit is contained in:
40
internals/templates/templates.go
Normal file
40
internals/templates/templates.go
Normal file
@ -0,0 +1,40 @@
|
||||
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
|
||||
}
|
Reference in New Issue
Block a user