|
6 | 6 | "io"
|
7 | 7 | "os"
|
8 | 8 | "path/filepath"
|
| 9 | + "slices" |
9 | 10 | "strings"
|
10 | 11 | "syscall"
|
11 | 12 | "time"
|
@@ -514,6 +515,24 @@ func buildFlagsWrapperToOptions(c *cobra.Command, contextDir string, flags *Buil
|
514 | 515 | }
|
515 | 516 | }
|
516 | 517 |
|
| 518 | + var sbomScanOptions []buildahDefine.SBOMScanOptions |
| 519 | + if c.Flag("sbom").Changed || c.Flag("sbom-scanner-command").Changed || c.Flag("sbom-scanner-image").Changed || c.Flag("sbom-image-output").Changed || c.Flag("sbom-merge-strategy").Changed || c.Flag("sbom-output").Changed || c.Flag("sbom-image-output").Changed || c.Flag("sbom-purl-output").Changed || c.Flag("sbom-image-purl-output").Changed { |
| 520 | + sbomScanOption, err := parse.SBOMScanOptions(c) |
| 521 | + if err != nil { |
| 522 | + return nil, err |
| 523 | + } |
| 524 | + if !slices.Contains(sbomScanOption.ContextDir, contextDir) { |
| 525 | + sbomScanOption.ContextDir = append(sbomScanOption.ContextDir, contextDir) |
| 526 | + } |
| 527 | + for _, abc := range additionalBuildContext { |
| 528 | + if !abc.IsURL && !abc.IsImage { |
| 529 | + sbomScanOption.ContextDir = append(sbomScanOption.ContextDir, abc.Value) |
| 530 | + } |
| 531 | + } |
| 532 | + sbomScanOption.PullPolicy = pullPolicy |
| 533 | + sbomScanOptions = append(sbomScanOptions, *sbomScanOption) |
| 534 | + } |
| 535 | + |
517 | 536 | opts := buildahDefine.BuildOptions{
|
518 | 537 | AddCapabilities: flags.CapAdd,
|
519 | 538 | AdditionalTags: tags,
|
@@ -570,6 +589,7 @@ func buildFlagsWrapperToOptions(c *cobra.Command, contextDir string, flags *Buil
|
570 | 589 | Runtime: podmanConfig.RuntimePath,
|
571 | 590 | RuntimeArgs: runtimeFlags,
|
572 | 591 | RusageLogFile: flags.RusageLogFile,
|
| 592 | + SBOMScanOptions: sbomScanOptions, |
573 | 593 | SignBy: flags.SignBy,
|
574 | 594 | SignaturePolicyPath: flags.SignaturePolicy,
|
575 | 595 | Squash: flags.Squash,
|
|
0 commit comments