From 9bc97a5785d3d350a084b46fc77a8439b8dc533b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Tue, 8 Nov 2016 23:55:39 +0200 Subject: build: NSIS based Windows installer (#3240) This commit adds support for creating Windows installers to ci.go --- internal/build/util.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'internal') diff --git a/internal/build/util.go b/internal/build/util.go index a821cd7f2..ce17ce220 100644 --- a/internal/build/util.go +++ b/internal/build/util.go @@ -20,6 +20,7 @@ import ( "bytes" "flag" "fmt" + "io" "io/ioutil" "log" "os" @@ -117,3 +118,25 @@ func render(tpl *template.Template, outputFile string, outputPerm os.FileMode, x log.Fatal(err) } } + +// CopyFile copies a file. +func CopyFile(dst, src string, mode os.FileMode) { + if err := os.MkdirAll(filepath.Dir(dst), 0755); err != nil { + log.Fatal(err) + } + destFile, err := os.OpenFile(dst, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, mode) + if err != nil { + log.Fatal(err) + } + defer destFile.Close() + + srcFile, err := os.Open(src) + if err != nil { + log.Fatal(err) + } + defer srcFile.Close() + + if _, err := io.Copy(destFile, srcFile); err != nil { + log.Fatal(err) + } +} -- cgit v1.2.3