in internal/template/template.go [84:112]
func WriteFile(in, out string, data map[string]interface{}) error {
if err := os.MkdirAll(filepath.Dir(out), 0755); err != nil {
return fmt.Errorf("mkdir %q: %v", filepath.Dir(out), err)
}
b, err := ioutil.ReadFile(in)
if err != nil {
return fmt.Errorf("read %q: %v", in, err)
}
tmpl, err := template.New(in).Funcs(funcMap).Option("missingkey=error").Parse(string(b))
if err != nil {
return fmt.Errorf("parse template %q: %v", in, err)
}
// Remove the template extension if present
out = strings.TrimSuffix(out, tmplExt)
outFile, err := os.OpenFile(out, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
return err
}
defer outFile.Close()
if err := tmpl.Execute(outFile, data); err != nil {
return fmt.Errorf("execute template %q: %v", in, err)
}
return nil
}