func WriteFile()

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
}