github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/syft/formats/cyclonedxxml/encoder.go (about)

     1  package cyclonedxxml
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/CycloneDX/cyclonedx-go"
     7  
     8  	"github.com/anchore/syft/syft/formats/common/cyclonedxhelpers"
     9  	"github.com/anchore/syft/syft/sbom"
    10  )
    11  
    12  func encoderV1_0(output io.Writer, s sbom.SBOM) error {
    13  	enc, bom := buildEncoder(output, s)
    14  	return enc.EncodeVersion(bom, cyclonedx.SpecVersion1_0)
    15  }
    16  
    17  func encoderV1_1(output io.Writer, s sbom.SBOM) error {
    18  	enc, bom := buildEncoder(output, s)
    19  	return enc.EncodeVersion(bom, cyclonedx.SpecVersion1_1)
    20  }
    21  
    22  func encoderV1_2(output io.Writer, s sbom.SBOM) error {
    23  	enc, bom := buildEncoder(output, s)
    24  	return enc.EncodeVersion(bom, cyclonedx.SpecVersion1_2)
    25  }
    26  
    27  func encoderV1_3(output io.Writer, s sbom.SBOM) error {
    28  	enc, bom := buildEncoder(output, s)
    29  	return enc.EncodeVersion(bom, cyclonedx.SpecVersion1_3)
    30  }
    31  
    32  func encoderV1_4(output io.Writer, s sbom.SBOM) error {
    33  	enc, bom := buildEncoder(output, s)
    34  	return enc.EncodeVersion(bom, cyclonedx.SpecVersion1_4)
    35  }
    36  
    37  func encoderV1_5(output io.Writer, s sbom.SBOM) error {
    38  	enc, bom := buildEncoder(output, s)
    39  	return enc.EncodeVersion(bom, cyclonedx.SpecVersion1_5)
    40  }
    41  
    42  func buildEncoder(output io.Writer, s sbom.SBOM) (cyclonedx.BOMEncoder, *cyclonedx.BOM) {
    43  	bom := cyclonedxhelpers.ToFormatModel(s)
    44  	enc := cyclonedx.NewBOMEncoder(output, cyclonedx.BOMFileFormatXML)
    45  	enc.SetPretty(true)
    46  	enc.SetEscapeHTML(false)
    47  	return enc, bom
    48  }