debian-forge-cli/cmd/image-builder
Michael Vogt c829e60649 manifest: handle "close()" errors in sbomWriter()
This commit adds error handling for the `f.Close()` errors when
we write the SBOM. Errors on close for RW fds are rare but we
should handle them so we return the result of `f.Close()` now
when returning in sbomWriter(). We still keep the `defer f.Close()`
to ensure we do not leak file descriptors when e.g. `io.Copy()`
fails. In the "happy" case f is closed without an error and
then the defer f.Close() runs and will error with "ErrClosed"
but we can ignore that.

An alternative implementaiton might be:
```golang
func sbomWriter(outputDir, filename string, content io.Reader) (err error) {
	...
	f, err := os.Create(p)
	if err != nil {
		return err
	}
	defer func() { err = errors.Join(err, f.Close()) }()
	...
	return nil
}
```
no super strong opinion here.

Thanks to Flo for finding this issues!
2025-04-23 06:46:39 +00:00
..
build.go import: refer to pkg 2025-03-31 19:42:59 +00:00
describeimg.go main: add base partition table to describe-image 2025-04-03 17:25:16 +00:00
describeimg_test.go main: add new --extra-repo flag 2025-02-12 12:57:21 +01:00
distro.go image-builder: newline in error message 2025-01-20 06:55:24 +00:00
distro_test.go image-builder: newline in error message 2025-01-20 06:55:24 +00:00
export_test.go main: add new --registrations options 2025-04-17 13:17:24 +00:00
filters.go main: rename list-images to list 2025-04-08 07:34:20 +00:00
filters_test.go main: add new --extra-repo flag 2025-02-12 12:57:21 +01:00
list.go main: add new --extra-repo flag 2025-02-12 12:57:21 +01:00
main.go main: add new --registrations options 2025-04-17 13:17:24 +00:00
main_test.go Add unit test for describe-image 2025-04-17 13:20:55 +00:00
manifest.go manifest: handle "close()" errors in sbomWriter() 2025-04-23 06:46:39 +00:00
repos.go main: add --force-repo flag 2025-02-13 11:31:06 +00:00
repos_test.go main: add --force-repo flag 2025-02-13 11:31:06 +00:00
upload.go import: refer to pkg 2025-03-31 19:42:59 +00:00
upload_test.go ibcli: add new --output-name flag 2025-03-14 14:47:36 +00:00