github.com/ppphp/yayagf@v0.0.1/internal/blueprint/blueprint.go (about) 1 package blueprint 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "os" 7 "path/filepath" 8 "text/template" 9 ) 10 11 func WriteFileWithTmpl(path string, tmpl string, params interface{}) error { 12 tmp, err := template.New("").Parse(tmpl) 13 if err != nil { 14 return err 15 } 16 bts := &bytes.Buffer{} 17 if err := tmp.Execute(bts, params); err != nil { 18 return err 19 } 20 abs, err := filepath.Abs(path) 21 if err != nil { 22 return err 23 } 24 dir := filepath.Dir(abs) 25 if err := os.MkdirAll(dir, 0755); err != nil { 26 return err 27 } 28 if err := ioutil.WriteFile(abs, bts.Bytes(), 0644); err != nil { 29 return err 30 } 31 return nil 32 }