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 }