Skip to content

Commit 6ebb665

Browse files
committed
Close merge destination before removing the source
1 parent 322330f commit 6ebb665

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

upgrade/upgrade.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,21 +83,29 @@ func mergeFile(src string, dst string) error {
8383
if err != nil {
8484
return err
8585
}
86-
defer fdst.Close()
8786

8887
// Read source content
8988
content, err := ioutil.ReadFile(src)
9089
if err != nil {
90+
fdst.Close()
9191
return err
9292
}
9393

9494
// Add Additional newline
9595
if _, err := fdst.WriteString("\n"); err != nil {
96+
fdst.Close()
9697
return err
9798
}
9899

99100
fmt.Printf("Merging: %s into %s\n", src, dst)
100101
if _, err = fdst.Write(content); err != nil {
102+
fdst.Close()
103+
return err
104+
}
105+
106+
// Close may surface deferred write errors; the source must survive
107+
// unless the merge fully reached the destination.
108+
if err := fdst.Close(); err != nil {
101109
return err
102110
}
103111

0 commit comments

Comments
 (0)