summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2019-03-14 17:55:45 -0400
committerGitHub <noreply@github.com>2019-03-14 17:55:45 -0400
commita5706df3ccdb0d3018e7c75bdddff63d1e95e2df (patch)
tree013d3737b7d82e038ea96fd2bf643d79a7620d9c
parenta94e9aaf842532448567c337d512ceec3b692ebb (diff)
parent165234cdf37f35506f7d3684b5ccfde4b15e614c (diff)
Merge pull request #513 from hairyhenderson/file-write-truncate-on-write-512
file.Write should truncate existing files
-rw-r--r--file/file.go2
-rw-r--r--file/file_test.go7
2 files changed, 8 insertions, 1 deletions
diff --git a/file/file.go b/file/file.go
index f0043c46..19e5a771 100644
--- a/file/file.go
+++ b/file/file.go
@@ -65,7 +65,7 @@ func Write(filename string, content []byte) error {
if err != nil {
return errors.Wrapf(err, "failed to make dirs for %s", filename)
}
- inFile, err := fs.OpenFile(filename, os.O_RDWR|os.O_CREATE, mode)
+ inFile, err := fs.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, mode)
if err != nil {
return errors.Wrapf(err, "failed to open %s", filename)
}
diff --git a/file/file_test.go b/file/file_test.go
index 3a6744c7..9ea78a60 100644
--- a/file/file_test.go
+++ b/file/file_test.go
@@ -79,6 +79,13 @@ func TestWrite(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, "Hello world", string(out))
+ err = Write(foopath, []byte("truncate"))
+ assert.NoError(t, err)
+
+ out, err = ioutil.ReadFile(foopath)
+ assert.NoError(t, err)
+ assert.Equal(t, "truncate", string(out))
+
foopath = filepath.Join(newwd, "nonexistant", "subdir", "foo")
err = Write(foopath, []byte("Hello subdirranean world!"))
assert.NoError(t, err)