use xml encoder (#165)

Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
This commit is contained in:
Alex Goodman 2020-08-31 08:06:56 -04:00 committed by GitHub
parent 8a4886ec0e
commit df7c83c9b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 73 additions and 74 deletions

View File

@ -66,16 +66,15 @@ func (pres *Presenter) Present(output io.Writer) error {
return fmt.Errorf("unsupported source: %T", src) return fmt.Errorf("unsupported source: %T", src)
} }
xmlOut, err := xml.MarshalIndent(bom, " ", " ") encoder := xml.NewEncoder(output)
encoder.Indent("", " ")
_, err := output.Write([]byte(xml.Header))
if err != nil { if err != nil {
return err return err
} }
_, err = output.Write([]byte(xml.Header)) err = encoder.Encode(bom)
if err != nil {
return err
}
_, err = output.Write(xmlOut)
if err != nil { if err != nil {
return err return err
} }

View File

@ -1,35 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.2" xmlns:bd="http://cyclonedx.org/schema/ext/bom-descriptor/1.0" version="1" serialNumber="urn:uuid:88c9a559-fb74-45a1-9dbb-a3d8bcbcacc8"> <bom xmlns="http://cyclonedx.org/schema/bom/1.2" xmlns:bd="http://cyclonedx.org/schema/ext/bom-descriptor/1.0" version="1" serialNumber="urn:uuid:b3b1786a-2de3-4501-b902-58b701b8ad0e">
<components> <components>
<component type="library"> <component type="library">
<name>package1</name> <name>package1</name>
<version>1.0.1</version> <version>1.0.1</version>
<purl>pkg:deb/ubuntu/package1@1.0.1?arch=amd64</purl> <purl>pkg:deb/ubuntu/package1@1.0.1?arch=amd64</purl>
</component> </component>
<component type="library"> <component type="library">
<name>package2</name> <name>package2</name>
<version>2.0.1</version> <version>2.0.1</version>
<licenses> <licenses>
<license> <license>
<name>MIT</name> <name>MIT</name>
</license> </license>
<license> <license>
<name>Apache-v2</name> <name>Apache-v2</name>
</license> </license>
</licenses> </licenses>
<purl>pkg:deb/ubuntu/package2@1.0.2?arch=amd64</purl> <purl>pkg:deb/ubuntu/package2@1.0.2?arch=amd64</purl>
</component> </component>
</components> </components>
<bd:metadata> <bd:metadata>
<bd:timestamp>2020-08-29T20:17:49-04:00</bd:timestamp> <bd:timestamp>2020-08-30T21:50:50-04:00</bd:timestamp>
<bd:tool> <bd:tool>
<bd:vendor>anchore</bd:vendor> <bd:vendor>anchore</bd:vendor>
<bd:name>syft</bd:name> <bd:name>syft</bd:name>
<bd:version>[not provided]</bd:version> <bd:version>[not provided]</bd:version>
</bd:tool> </bd:tool>
<bd:component type="file"> <bd:component type="file">
<name>/some/path</name> <name>/some/path</name>
<version></version> <version></version>
</bd:component> </bd:component>
</bd:metadata> </bd:metadata>
</bom> </bom>

View File

@ -1,35 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<bom xmlns="http://cyclonedx.org/schema/bom/1.2" xmlns:bd="http://cyclonedx.org/schema/ext/bom-descriptor/1.0" version="1" serialNumber="urn:uuid:6da957f1-3337-4128-870c-fe271aa195d1"> <bom xmlns="http://cyclonedx.org/schema/bom/1.2" xmlns:bd="http://cyclonedx.org/schema/ext/bom-descriptor/1.0" version="1" serialNumber="urn:uuid:ab970429-e6a2-44a1-810c-f9ed2b7c3147">
<components> <components>
<component type="library"> <component type="library">
<name>package1</name> <name>package1</name>
<version>1.0.1</version> <version>1.0.1</version>
<purl>pkg:rpm/redhat/package1@0:1.0.1-1?arch=x86_64</purl> <purl>pkg:rpm/redhat/package1@0:1.0.1-1?arch=x86_64</purl>
</component> </component>
<component type="library"> <component type="library">
<name>package2</name> <name>package2</name>
<version>2.0.1</version> <version>2.0.1</version>
<licenses> <licenses>
<license> <license>
<name>MIT</name> <name>MIT</name>
</license> </license>
<license> <license>
<name>Apache-v2</name> <name>Apache-v2</name>
</license> </license>
</licenses> </licenses>
<purl>pkg:rpm/redhat/package2@0:1.0.2-1?arch=x86_64</purl> <purl>pkg:rpm/redhat/package2@0:1.0.2-1?arch=x86_64</purl>
</component> </component>
</components> </components>
<bd:metadata> <bd:metadata>
<bd:timestamp>2020-08-29T20:17:49-04:00</bd:timestamp> <bd:timestamp>2020-08-30T21:50:50-04:00</bd:timestamp>
<bd:tool> <bd:tool>
<bd:vendor>anchore</bd:vendor> <bd:vendor>anchore</bd:vendor>
<bd:name>syft</bd:name> <bd:name>syft</bd:name>
<bd:version>[not provided]</bd:version> <bd:version>[not provided]</bd:version>
</bd:tool> </bd:tool>
<bd:component type="container"> <bd:component type="container">
<name>index.docker.io/library/anchore-fixture-image-simple</name> <name>index.docker.io/library/anchore-fixture-image-simple</name>
<version>04e16e44161c8888a1a963720fd0443cbf7eef8101434c431de8725cd98cc9f7</version> <version>04e16e44161c8888a1a963720fd0443cbf7eef8101434c431de8725cd98cc9f7</version>
</bd:component> </bd:component>
</bd:metadata> </bd:metadata>
</bom> </bom>