/
generator_template.go
64 lines (50 loc) · 1.15 KB
/
generator_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
53
54
55
56
57
58
59
60
61
62
63
64
package generator
const (
GenFileTemplate = `
{{$info := .}}
//go:build easyhide
package main
// Code generated by easyhide. DO NOT EDIT.
import (
"log"
"os/exec"
easyhide "github.com/denis96z/go-easyhide/pkg/easyhide/generator"
{{$info.Pkg.Name}} {{printf "%q" $info.Pkg.Path}}
)
var (
{{range $idx, $tp := $info.Types}}
v{{$idx}} = {{$info.Pkg.Name}}.{{$tp.Name}}{}
{{end}}
)
const (
GeneratedFilePath = {{printf "%q" $info.GeneratedFilePath}}
)
func main() {
ej := false
_, err := exec.LookPath("easyjson")
if err == nil {
ej = true
}
gData := easyhide.GenData{
PkgName: {{printf "%q" $info.Pkg.Name}},
EasyJSON: ej,
Types: make([]easyhide.GenDataTypeInfo, 0),
}
{{range $idx, $tp := $info.Types}}
{
var gdtpInfo easyhide.GenDataTypeInfo
gdtpInfo.TypeCode, gdtpInfo.FuncCode = easyhide.GenerateCodeForType(v{{$idx}}, "{{$tp.Name}}")
gData.Types = append(gData.Types, gdtpInfo)
}
{{end}}
if err := easyhide.WriteEasyHideFile(GeneratedFilePath, gData); err != nil {
log.Fatal(err)
}
if gData.EasyJSON {
if err := easyhide.GoRunGenerateForResultFile(GeneratedFilePath); err != nil {
log.Fatal(err)
}
}
}
`
)