github.com/CloudCom/goose@v0.0.0-20151110184009-e03c3249c21b/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  }