From 165234cdf37f35506f7d3684b5ccfde4b15e614c Mon Sep 17 00:00:00 2001 From: Dave Henderson Date: Thu, 14 Mar 2019 17:51:39 -0400 Subject: file.Write should truncate existing files Signed-off-by: Dave Henderson --- file/file.go | 2 +- file/file_test.go | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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) -- cgit v1.2.3