diff --git a/internal/file/file.go b/internal/file/file.go index 974dabc2..c6e95849 100644 --- a/internal/file/file.go +++ b/internal/file/file.go @@ -117,13 +117,9 @@ func TrimFileExtension(fileName string) string { return strings.TrimSuffix(fileName, filepath.Ext(fileName)) } -// WriteFile writes content to a temporary file and moves it to path with all -// parent directories created. +// WriteFile writes content to a temporary file and moves it to path. // If path already exists and is a file, WriteFile overwrites it. func WriteFile(path string, content []byte) (writeErr error) { - if err := os.MkdirAll(filepath.Dir(path), 0700); err != nil { - return err - } tempFile, err := os.CreateTemp("", tempFileNamePrefix) if err != nil { return fmt.Errorf("failed to create temp file: %w", err) diff --git a/internal/file/file_test.go b/internal/file/file_test.go index 4e007e88..306a0a5b 100644 --- a/internal/file/file_test.go +++ b/internal/file/file_test.go @@ -27,6 +27,9 @@ func TestCopyToDir(t *testing.T) { tempDir := t.TempDir() data := []byte("data") filename := filepath.Join(tempDir, "a", "file.txt") + if err := os.MkdirAll(filepath.Dir(filename), 0700); err != nil { + t.Fatal(err) + } if err := WriteFile(filename, data); err != nil { t.Fatal(err) } @@ -46,6 +49,9 @@ func TestCopyToDir(t *testing.T) { destDir := t.TempDir() data := []byte("data") filename := filepath.Join(tempDir, "a", "file.txt") + if err := os.MkdirAll(filepath.Dir(filename), 0700); err != nil { + t.Fatal(err) + } if err := WriteFile(filename, data); err != nil { t.Fatal(err) } @@ -78,6 +84,9 @@ func TestCopyToDir(t *testing.T) { data := []byte("data") // prepare file filename := filepath.Join(tempDir, "a", "file.txt") + if err := os.MkdirAll(filepath.Dir(filename), 0700); err != nil { + t.Fatal(err) + } if err := WriteFile(filename, data); err != nil { t.Fatal(err) } @@ -101,6 +110,9 @@ func TestCopyToDir(t *testing.T) { data := []byte("data") // prepare file filename := filepath.Join(tempDir, "a", "file.txt") + if err := os.MkdirAll(filepath.Dir(filename), 0700); err != nil { + t.Fatal(err) + } if err := WriteFile(filename, data); err != nil { t.Fatal(err) } @@ -124,6 +136,9 @@ func TestCopyToDir(t *testing.T) { data := []byte("data") // prepare file filename := filepath.Join(tempDir, "a", "file.txt") + if err := os.MkdirAll(filepath.Dir(filename), 0700); err != nil { + t.Fatal(err) + } if err := WriteFile(filename, data); err != nil { t.Fatal(err) } @@ -141,6 +156,9 @@ func TestCopyToDir(t *testing.T) { tempDir := t.TempDir() data := []byte("data") filename := filepath.Join(tempDir, "a", "file.txt") + if err := os.MkdirAll(filepath.Dir(filename), 0700); err != nil { + t.Fatal(err) + } if err := WriteFile(filename, data); err != nil { t.Fatal(err) }