Skip to content

Commit 89eec62

Browse files
committed
bazel/packaging: handle errors in defer
address golangci-lint errors on defer, e.g. ``` Error: /home/runner/work/redpanda/redpanda/bazel/packaging/tool.go:116:16: Error return value of `tw.Close` is not checked (errcheck) defer tw.Close() ```
1 parent 2db7c8f commit 89eec62

File tree

1 file changed

+35
-6
lines changed

1 file changed

+35
-6
lines changed

bazel/packaging/tool.go

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,12 +113,21 @@ func createPackage(cfg pkgConfig, createDir func(path string) error, createFile
113113

114114
func createTarball(cfg pkgConfig, w io.Writer) error {
115115
tw := tar.NewWriter(w)
116-
defer tw.Close()
116+
defer func() {
117+
if err := tw.Close(); err != nil {
118+
fmt.Fprintf(os.Stderr, "error closing tar writer: %v\n", err)
119+
}
120+
}()
117121
writeFile := func(fileConfig fileConfig) error {
118122
file, err := os.Open(fileConfig.SourcePath)
119123
if err != nil {
120124
return err
121125
}
126+
defer func() {
127+
if err := file.Close(); err != nil {
128+
fmt.Fprintf(os.Stderr, "error closing file %s: %v\n", fileConfig.SourcePath, err)
129+
}
130+
}()
122131
info, err := file.Stat()
123132
if err != nil {
124133
return err
@@ -156,12 +165,20 @@ func copyFile(src string, dst string) error {
156165
if err != nil {
157166
return err
158167
}
159-
defer srcFile.Close()
168+
defer func() {
169+
if err := srcFile.Close(); err != nil {
170+
fmt.Fprintf(os.Stderr, "error closing source file %s: %v\n", src, err)
171+
}
172+
}()
160173
dstFile, err := os.Create(dst)
161174
if err != nil {
162175
return err
163176
}
164-
defer dstFile.Close()
177+
defer func() {
178+
if err := dstFile.Close(); err != nil {
179+
fmt.Fprintf(os.Stderr, "error closing destination file %s: %v\n", dst, err)
180+
}
181+
}()
165182
_, err = dstFile.ReadFrom(srcFile)
166183
if err != nil {
167184
return err
@@ -212,11 +229,23 @@ func runTool() error {
212229
if err != nil {
213230
return fmt.Errorf("unable to open output file: %w", err)
214231
}
215-
defer file.Close()
232+
defer func() {
233+
if err := file.Close(); err != nil {
234+
fmt.Fprintf(os.Stderr, "error closing output file %s: %v\n", *output, err)
235+
}
236+
}()
216237
bw := bufio.NewWriter(file)
217-
defer bw.Flush()
238+
defer func() {
239+
if err := bw.Flush(); err != nil {
240+
fmt.Fprintf(os.Stderr, "error flushing buffered writer: %v\n", err)
241+
}
242+
}()
218243
gw := gzip.NewWriter(bw)
219-
defer gw.Close()
244+
defer func() {
245+
if err := gw.Close(); err != nil {
246+
fmt.Fprintf(os.Stderr, "error closing gzip writer: %v\n", err)
247+
}
248+
}()
220249
if err := createTarball(cfg, gw); err != nil {
221250
return fmt.Errorf("unable to create tarball: %w", err)
222251
}

0 commit comments

Comments
 (0)