是否可以仅执行模板的一部分而丢弃其他部分?
我从另一个工具生成了一个很大的文件,其中包含{{}}
中的一些值
像这样
{{.Value}}
{{.Nono}}
或者这个:
Hello {{ .Value }} With name {{ if .Value}}{{ .Value }}{{ else }}(whoops, no name!){{ end }}{{.metadata.name}}
type SwapVariable struct {
Value string
}
func sw(fileName string, tmp string) {
b, err := ioutil.ReadFile(fileName) // just pass the file name
if err != nil {
fmt.Print(err)
}
str := string(b)
var kubeDistribution = []SwapVariable{
{Value: tmp},
}
t := template.Must(template.New("letter").Parse(str))
buf := bytes.NewBufferString("")
for _, r := range kubeDistribution {
errTemplate := t.Execute(buf, r)
if errTemplate != nil {
log.Println("executing template:", errTemplate)
}
}
errWrite := ioutil.WriteFile(fileName, buf.Bytes(), 0644)
if errWrite != nil {
log.Fatalf("Error in: %s\n", errWrite)
}
}
executing template: template: letter:1:20: executing "letter" at <.Value>: can't evaluate field Value in type string