forked from ezbuy/tgen
/
template.go
52 lines (41 loc) · 951 Bytes
/
template.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package gogen
import (
"os"
"text/template"
"github.com/seaWind0112/tgen/tmpl"
)
var tpl *template.Template
func Tpl() *template.Template {
return tpl
}
func init() {
tpl = template.New("tgen/golang")
files := []string{
"tmpl/golang/include.gogo",
"tmpl/golang/struct.gogo",
"tmpl/golang/service.gogo",
"tmpl/golang/constant.gogo",
"tmpl/golang/enum.gogo",
"tmpl/golang/exception.gogo",
"tmpl/golang/defines_file.gogo",
"tmpl/golang/rpc_client.gogo",
"tmpl/golang/echo_module.gogo",
}
for _, filename := range files {
data, err := tmpl.Asset(filename)
if err != nil {
panic(err)
}
if _, err = tpl.Parse(string(data)); err != nil {
panic(err)
}
}
}
func outputFile(path string, tplName string, data interface{}) error {
file, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644)
if err != nil {
return err
}
defer file.Close()
return tpl.ExecuteTemplate(file, tplName, data)
}