Close merge destination before removing the source

This commit is contained in:
Yasuhiro Matsumoto
2026-07-29 14:05:50 +09:00
parent 322330f147
commit 6ebb665a62

View File

@@ -83,21 +83,29 @@ func mergeFile(src string, dst string) error {
if err != nil { if err != nil {
return err return err
} }
defer fdst.Close()
// Read source content // Read source content
content, err := ioutil.ReadFile(src) content, err := ioutil.ReadFile(src)
if err != nil { if err != nil {
fdst.Close()
return err return err
} }
// Add Additional newline // Add Additional newline
if _, err := fdst.WriteString("\n"); err != nil { if _, err := fdst.WriteString("\n"); err != nil {
fdst.Close()
return err return err
} }
fmt.Printf("Merging: %s into %s\n", src, dst) fmt.Printf("Merging: %s into %s\n", src, dst)
if _, err = fdst.Write(content); err != nil { if _, err = fdst.Write(content); err != nil {
fdst.Close()
return err
}
// Close may surface deferred write errors; the source must survive
// unless the merge fully reached the destination.
if err := fdst.Close(); err != nil {
return err return err
} }