github.com/gogriddy/goose@v0.0.0-20180817174216-2c751e0981c8/lib/goose/util.go (about) 1 package goose 2 3 import ( 4 "io" 5 "os" 6 "text/template" 7 ) 8 9 // common routines 10 11 func writeTemplateToFile(path string, t *template.Template, data interface{}) (string, error) { 12 f, e := os.Create(path) 13 if e != nil { 14 return "", e 15 } 16 defer f.Close() 17 18 e = t.Execute(f, data) 19 if e != nil { 20 return "", e 21 } 22 23 return f.Name(), nil 24 } 25 26 func copyFile(dst, src string) (int64, error) { 27 sf, err := os.Open(src) 28 if err != nil { 29 return 0, err 30 } 31 defer sf.Close() 32 33 df, err := os.Create(dst) 34 if err != nil { 35 return 0, err 36 } 37 defer df.Close() 38 39 return io.Copy(df, sf) 40 }