...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package main
17
18 import (
19 "bytes"
20 "text/template"
21 )
22
23 const initTemplate = `
24 SchemeBuilder.Register(&{{.Type}}{}, &{{.Type}}List{})
25 {{- if .IsExperiment}}
26 all.register(Kind{{.Type}}, &ChaosKind{
27 chaos: &{{.Type}}{},
28 list: &{{.Type}}List{},
29 })
30 {{- end}}
31 `
32
33 func generateInit(name string, isExperiment bool) string {
34 tmpl, err := template.New("ini").Parse(initTemplate)
35 if err != nil {
36 log.Error(err, "fail to build template")
37 panic(err)
38 }
39
40 buf := new(bytes.Buffer)
41 err = tmpl.Execute(buf, &metadata{
42 Type: name,
43 IsExperiment: isExperiment,
44 })
45 if err != nil {
46 log.Error(err, "fail to execute template")
47 panic(err)
48 }
49
50 return buf.String()
51 }
52