From e7b9fbff1ebfabff9887f2bb27ad0342e8cf5cab Mon Sep 17 00:00:00 2001 From: Simon de Vlieger Date: Fri, 14 Mar 2025 12:31:07 +0100 Subject: [PATCH] ibcli: don't split outputfilename A small test for a basename that includes dotted parts (as used by for example Fedora's buildsystem). Also some code changes to make this test pass, it seems that SBOM base was determined based on some other filename which is now no longer relevant? Signed-off-by: Simon de Vlieger --- cmd/image-builder/main_test.go | 12 ++++++------ cmd/image-builder/manifest.go | 5 ++--- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/cmd/image-builder/main_test.go b/cmd/image-builder/main_test.go index 6882fce..5215b9f 100644 --- a/cmd/image-builder/main_test.go +++ b/cmd/image-builder/main_test.go @@ -879,7 +879,7 @@ func TestBuildIntegrationOutputFilename(t *testing.T) { "--distro", "centos-9", "--cache", tmpdir, "--output-dir", outputDir, - "--output-name=foo", + "--output-name=foo.n.0", "--with-manifest", "--with-sbom", "--with-buildlog", @@ -894,11 +894,11 @@ func TestBuildIntegrationOutputFilename(t *testing.T) { assert.NoError(t, err) expectedFiles := []string{ - "foo.buildroot-build.spdx.json", - "foo.image-os.spdx.json", - "foo.osbuild-manifest.json", - "foo.buildlog", - "foo.qcow2", + "foo.n.0.buildroot-build.spdx.json", + "foo.n.0.image-os.spdx.json", + "foo.n.0.osbuild-manifest.json", + "foo.n.0.buildlog", + "foo.n.0.qcow2", } files, err := filepath.Glob(outputDir + "/*") assert.NoError(t, err) diff --git a/cmd/image-builder/manifest.go b/cmd/image-builder/manifest.go index 3fc8078..2bfab6e 100644 --- a/cmd/image-builder/manifest.go +++ b/cmd/image-builder/manifest.go @@ -56,10 +56,9 @@ func generateManifest(dataDir string, extraRepos []string, img *imagefilter.Resu } if opts.WithSBOM { outputDir := basenameFor(img, opts.OutputDir) - overrideSBOMBase := strings.SplitN(opts.OutputFilename, ".", 2)[0] manifestGenOpts.SBOMWriter = func(filename string, content io.Reader, docType sbom.StandardType) error { - if overrideSBOMBase != "" { - filename = fmt.Sprintf("%s.%s", overrideSBOMBase, strings.SplitN(filename, ".", 2)[1]) + if opts.OutputFilename != "" { + filename = fmt.Sprintf("%s.%s", opts.OutputFilename, strings.SplitN(filename, ".", 2)[1]) } return sbomWriter(outputDir, filename, content) }