func (appfiles ApplicationFiles) copyFile(srcPath string, dstPath string, fileMode os.FileMode) error { dst, err := fileutils.Create(dstPath) if err != nil { return err } defer dst.Close() if runtime.GOOS != "windows" { err = dst.Chmod(fileMode) if err != nil { return err } } src, err := os.Open(srcPath) if err != nil { return err } defer src.Close() _, err = io.Copy(dst, src) if err != nil { return err } return nil }
fileBytes, err := ioutil.ReadFile(fd.Name()) Expect(err).NotTo(HaveOccurred()) Expect(string(fileBytes)).To(Equal("Never Gonna Give You Up")) }) }) Describe("Create", func() { It("truncates an existing file", func() { tmpFile, err := ioutil.TempFile("", "create_test") Expect(err).NotTo(HaveOccurred()) _, err = tmpFile.WriteString("Never Gonna Give You Up") Expect(err).NotTo(HaveOccurred()) filePath := tmpFile.Name() tmpFile.Close() fd, err := fileutils.Create(filePath) Expect(err).NotTo(HaveOccurred()) fileBytes, err := ioutil.ReadAll(fd) Expect(err).NotTo(HaveOccurred()) Expect(len(fileBytes)).To(Equal(0)) fd.Close() }) It("creates a non-existing file and all intermediary directories", func() { fd, err := ioutil.TempFile("", "create_test") Expect(err).NotTo(HaveOccurred()) _, err = fd.WriteString("Never Gonna Let You Down") Expect(err).NotTo(HaveOccurred()) fd.Close()