diff --git a/Makefile b/Makefile index 530673722..9cf92ba8a 100644 --- a/Makefile +++ b/Makefile @@ -211,13 +211,13 @@ integration-fingerprint: .PHONY: java-packages-fingerprint java-packages-fingerprint: $(call title,Java test fixture fingerprint) - cd syft/pkg/cataloger/java/test-fixtures/java-builds && \ + cd syft/cataloger/packages/java/test-fixtures/java-builds && \ make packages.fingerprint .PHONY: fixtures fixtures: $(call title,Generating test fixtures) - cd syft/pkg/cataloger/java/test-fixtures/java-builds && make + cd syft/cataloger/packages/java/test-fixtures/java-builds && make .PHONY: generate-json-schema generate-json-schema: ## Generate a new json schema diff --git a/internal/anchore/import_package_sbom_test.go b/internal/anchore/import_package_sbom_test.go index 75025bb0d..f2f321844 100644 --- a/internal/anchore/import_package_sbom_test.go +++ b/internal/anchore/import_package_sbom_test.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "github.com/anchore/syft/syft/cpe" "github.com/anchore/syft/syft/file" "net/http" "strings" @@ -23,7 +24,7 @@ import ( "github.com/wagoodman/go-progress" ) -func must(c pkg.CPE, e error) pkg.CPE { +func must(c cpe.CPE, e error) cpe.CPE { if e != nil { panic(e) } @@ -53,7 +54,7 @@ func (m *mockPackageSBOMImportAPI) ImportImagePackages(ctx context.Context, sess func sbomFixture() sbom.SBOM { return sbom.SBOM{ Artifacts: sbom.Artifacts{ - PackageCatalog: pkg.NewCatalog(pkg.Package{ + PackageCatalog: pkg.NewCollection(pkg.Package{ Name: "name", Version: "version", FoundBy: "foundBy", @@ -68,8 +69,8 @@ func sbomFixture() sbom.SBOM { Licenses: []string{"license"}, Language: pkg.Python, Type: pkg.PythonPkg, - CPEs: []pkg.CPE{ - must(pkg.NewCPE("cpe:2.3:*:some:package:1:*:*:*:*:*:*:*")), + CPEs: []cpe.CPE{ + must(cpe.New("cpe:2.3:*:some:package:1:*:*:*:*:*:*:*")), }, PURL: "purl", MetadataType: pkg.PythonPackageMetadataType, diff --git a/internal/config/application.go b/internal/config/application.go index 81b66e49c..c0e4b1701 100644 --- a/internal/config/application.go +++ b/internal/config/application.go @@ -3,17 +3,16 @@ package config import ( "errors" "fmt" + "github.com/anchore/syft/syft/cataloger/files/fileclassifier" "path" "reflect" "strings" + "github.com/adrg/xdg" + "github.com/anchore/syft/internal" "github.com/anchore/syft/internal/version" "github.com/anchore/syft/syft" "github.com/anchore/syft/syft/file" - "github.com/anchore/syft/syft/file/cataloger/fileclassifier" - - "github.com/adrg/xdg" - "github.com/anchore/syft/internal" "github.com/mitchellh/go-homedir" "github.com/sirupsen/logrus" "github.com/spf13/viper" diff --git a/internal/config/file_contents.go b/internal/config/file_contents.go index 870e5eb6e..55e66ade0 100644 --- a/internal/config/file_contents.go +++ b/internal/config/file_contents.go @@ -1,8 +1,8 @@ package config import ( + "github.com/anchore/syft/syft/cataloger/files/filecontents" "github.com/anchore/syft/syft/file" - "github.com/anchore/syft/syft/file/cataloger/filecontents" "github.com/anchore/syft/syft/source" "github.com/spf13/viper" ) diff --git a/internal/config/pkg.go b/internal/config/pkg.go index a27b3e29c..d4e0b98d1 100644 --- a/internal/config/pkg.go +++ b/internal/config/pkg.go @@ -1,7 +1,7 @@ package config import ( - "github.com/anchore/syft/syft/pkg/cataloger/packages" + "github.com/anchore/syft/syft/cataloger/packages" "github.com/spf13/viper" ) diff --git a/internal/config/secrets.go b/internal/config/secrets.go index c11dcef38..3c916b5e0 100644 --- a/internal/config/secrets.go +++ b/internal/config/secrets.go @@ -2,9 +2,9 @@ package config import ( "fmt" + "github.com/anchore/syft/syft/cataloger/files/secrets" "github.com/anchore/syft/syft/file" - "github.com/anchore/syft/syft/file/cataloger/secrets" "github.com/anchore/syft/syft/source" "github.com/spf13/viper" ) diff --git a/internal/formats/common/cyclonedxhelpers/cpe.go b/internal/formats/common/cyclonedxhelpers/cpe.go index ecee0dc39..42431c9e2 100644 --- a/internal/formats/common/cyclonedxhelpers/cpe.go +++ b/internal/formats/common/cyclonedxhelpers/cpe.go @@ -2,6 +2,7 @@ package cyclonedxhelpers import ( "github.com/CycloneDX/cyclonedx-go" + "github.com/anchore/syft/syft/cpe" "github.com/anchore/syft/internal/log" "github.com/anchore/syft/syft/pkg" @@ -11,7 +12,7 @@ func encodeSingleCPE(p pkg.Package) string { // Since the CPEs in a package are sorted by specificity // we can extract the first CPE as the one to output in cyclonedx if len(p.CPEs) > 0 { - return pkg.CPEString(p.CPEs[0]) + return cpe.String(p.CPEs[0]) } return "" } @@ -24,15 +25,15 @@ func encodeCPEs(p pkg.Package) (out []cyclonedx.Property) { } out = append(out, cyclonedx.Property{ Name: "syft:cpe23", - Value: pkg.CPEString(c), + Value: cpe.String(c), }) } return } -func decodeCPEs(c *cyclonedx.Component) (out []pkg.CPE) { +func decodeCPEs(c *cyclonedx.Component) (out []cpe.CPE) { if c.CPE != "" { - cp, err := pkg.NewCPE(c.CPE) + cp, err := cpe.New(c.CPE) if err != nil { log.Warnf("invalid CPE: %s", c.CPE) } else { @@ -43,7 +44,7 @@ func decodeCPEs(c *cyclonedx.Component) (out []pkg.CPE) { if c.Properties != nil { for _, p := range *c.Properties { if p.Name == "syft:cpe23" { - cp, err := pkg.NewCPE(p.Value) + cp, err := cpe.New(p.Value) if err != nil { log.Warnf("invalid CPE: %s", p.Value) } else { diff --git a/internal/formats/common/cyclonedxhelpers/cpe_test.go b/internal/formats/common/cyclonedxhelpers/cpe_test.go index 1eff79ac6..3efff0d7b 100644 --- a/internal/formats/common/cyclonedxhelpers/cpe_test.go +++ b/internal/formats/common/cyclonedxhelpers/cpe_test.go @@ -1,6 +1,7 @@ package cyclonedxhelpers import ( + "github.com/anchore/syft/syft/cpe" "testing" "github.com/stretchr/testify/assert" @@ -9,8 +10,8 @@ import ( ) func Test_encodeCPE(t *testing.T) { - testCPE := pkg.MustCPE("cpe:2.3:a:name:name:3.2:*:*:*:*:*:*:*") - testCPE2 := pkg.MustCPE("cpe:2.3:a:name:name2:3.2:*:*:*:*:*:*:*") + testCPE := cpe.Must("cpe:2.3:a:name:name:3.2:*:*:*:*:*:*:*") + testCPE2 := cpe.Must("cpe:2.3:a:name:name2:3.2:*:*:*:*:*:*:*") tests := []struct { name string input pkg.Package @@ -20,14 +21,14 @@ func Test_encodeCPE(t *testing.T) { // note: since this is an optional field, no value is preferred over NONE or NOASSERTION name: "no metadata", input: pkg.Package{ - CPEs: []pkg.CPE{}, + CPEs: []cpe.CPE{}, }, expected: "", }, { name: "single CPE", input: pkg.Package{ - CPEs: []pkg.CPE{ + CPEs: []cpe.CPE{ testCPE, }, }, @@ -36,7 +37,7 @@ func Test_encodeCPE(t *testing.T) { { name: "multiple CPEs", input: pkg.Package{ - CPEs: []pkg.CPE{ + CPEs: []cpe.CPE{ testCPE2, testCPE, }, diff --git a/internal/formats/common/cyclonedxhelpers/decoder.go b/internal/formats/common/cyclonedxhelpers/decoder.go index eb56eba6c..264c96b73 100644 --- a/internal/formats/common/cyclonedxhelpers/decoder.go +++ b/internal/formats/common/cyclonedxhelpers/decoder.go @@ -49,7 +49,7 @@ func toSyftModel(bom *cyclonedx.BOM) (*sbom.SBOM, error) { } s := &sbom.SBOM{ Artifacts: sbom.Artifacts{ - PackageCatalog: pkg.NewCatalog(), + PackageCatalog: pkg.NewCollection(), LinuxDistribution: linuxReleaseFromComponents(*bom.Components), }, Source: meta, diff --git a/internal/formats/common/spdxhelpers/external_refs.go b/internal/formats/common/spdxhelpers/external_refs.go index 384282cb0..32b9cb4ee 100644 --- a/internal/formats/common/spdxhelpers/external_refs.go +++ b/internal/formats/common/spdxhelpers/external_refs.go @@ -1,6 +1,7 @@ package spdxhelpers import ( + "github.com/anchore/syft/syft/cpe" "github.com/anchore/syft/syft/pkg" ) @@ -10,7 +11,7 @@ func ExternalRefs(p pkg.Package) (externalRefs []ExternalRef) { for _, c := range p.CPEs { externalRefs = append(externalRefs, ExternalRef{ ReferenceCategory: SecurityReferenceCategory, - ReferenceLocator: pkg.CPEString(c), + ReferenceLocator: cpe.String(c), ReferenceType: Cpe23ExternalRefType, }) } diff --git a/internal/formats/common/spdxhelpers/external_refs_test.go b/internal/formats/common/spdxhelpers/external_refs_test.go index 180a5c4db..553cce577 100644 --- a/internal/formats/common/spdxhelpers/external_refs_test.go +++ b/internal/formats/common/spdxhelpers/external_refs_test.go @@ -1,6 +1,7 @@ package spdxhelpers import ( + "github.com/anchore/syft/syft/cpe" "testing" "github.com/anchore/syft/syft/pkg" @@ -8,7 +9,7 @@ import ( ) func Test_ExternalRefs(t *testing.T) { - testCPE := pkg.MustCPE("cpe:2.3:a:name:name:3.2:*:*:*:*:*:*:*") + testCPE := cpe.Must("cpe:2.3:a:name:name:3.2:*:*:*:*:*:*:*") tests := []struct { name string input pkg.Package @@ -17,7 +18,7 @@ func Test_ExternalRefs(t *testing.T) { { name: "cpe + purl", input: pkg.Package{ - CPEs: []pkg.CPE{ + CPEs: []cpe.CPE{ testCPE, }, PURL: "a-purl", @@ -25,7 +26,7 @@ func Test_ExternalRefs(t *testing.T) { expected: []ExternalRef{ { ReferenceCategory: SecurityReferenceCategory, - ReferenceLocator: pkg.CPEString(testCPE), + ReferenceLocator: cpe.String(testCPE), ReferenceType: Cpe23ExternalRefType, }, { diff --git a/internal/formats/common/spdxhelpers/to_syft_model.go b/internal/formats/common/spdxhelpers/to_syft_model.go index 4f0fd5e24..9c7b843a0 100644 --- a/internal/formats/common/spdxhelpers/to_syft_model.go +++ b/internal/formats/common/spdxhelpers/to_syft_model.go @@ -1,6 +1,7 @@ package spdxhelpers import ( + "github.com/anchore/syft/syft/cpe" "strconv" "strings" @@ -20,7 +21,7 @@ func ToSyftModel(doc *spdx.Document2_2) (*sbom.SBOM, error) { s := &sbom.SBOM{ Artifacts: sbom.Artifacts{ - PackageCatalog: pkg.NewCatalog(), + PackageCatalog: pkg.NewCollection(), FileMetadata: map[file.Coordinates]file.Metadata{}, FileDigests: map[file.Coordinates][]file.Digest{}, LinuxDistribution: findLinuxReleaseByPURL(doc), @@ -316,10 +317,10 @@ func findPURLValue(p *spdx.Package2_2) string { return "" } -func extractCPEs(p *spdx.Package2_2) (cpes []pkg.CPE) { +func extractCPEs(p *spdx.Package2_2) (cpes []cpe.CPE) { for _, r := range p.PackageExternalReferences { if r.RefType == string(Cpe23ExternalRefType) { - cpe, err := pkg.NewCPE(r.Locator) + cpe, err := cpe.New(r.Locator) if err != nil { log.Warnf("unable to extract SPDX CPE=%q: %+v", r.Locator, err) continue diff --git a/internal/formats/common/testutils/utils.go b/internal/formats/common/testutils/utils.go index 7369f6e3f..b2cb6edc0 100644 --- a/internal/formats/common/testutils/utils.go +++ b/internal/formats/common/testutils/utils.go @@ -2,6 +2,7 @@ package testutils import ( "bytes" + "github.com/anchore/syft/syft/cpe" "strings" "testing" @@ -99,7 +100,7 @@ func AssertEncoderAgainstGoldenSnapshot(t *testing.T, format sbom.Format, sbom s func ImageInput(t testing.TB, testImage string, options ...ImageOption) sbom.SBOM { t.Helper() - catalog := pkg.NewCatalog() + catalog := pkg.NewCollection() var cfg imageCfg var img *image.Image for _, opt := range options { @@ -151,7 +152,7 @@ func carriageRedactor(s []byte) []byte { return []byte(msg) } -func populateImageCatalog(catalog *pkg.Catalog, img *image.Image) { +func populateImageCatalog(catalog *pkg.Collection, img *image.Image) { _, ref1, _ := img.SquashedTree().File("/somefile-1.txt", filetree.FollowBasenameLinks) _, ref2, _ := img.SquashedTree().File("/somefile-2.txt", filetree.FollowBasenameLinks) @@ -172,8 +173,8 @@ func populateImageCatalog(catalog *pkg.Catalog, img *image.Image) { Version: "1.0.1", }, PURL: "a-purl-1", - CPEs: []pkg.CPE{ - pkg.MustCPE("cpe:2.3:*:some:package:1:*:*:*:*:*:*:*"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:*:some:package:1:*:*:*:*:*:*:*"), }, }) catalog.Add(pkg.Package{ @@ -190,8 +191,8 @@ func populateImageCatalog(catalog *pkg.Catalog, img *image.Image) { Version: "2.0.1", }, PURL: "a-purl-2", - CPEs: []pkg.CPE{ - pkg.MustCPE("cpe:2.3:*:some:package:2:*:*:*:*:*:*:*"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:*:some:package:2:*:*:*:*:*:*:*"), }, }) } @@ -227,8 +228,8 @@ func DirectoryInput(t testing.TB) sbom.SBOM { } } -func newDirectoryCatalog() *pkg.Catalog { - catalog := pkg.NewCatalog() +func newDirectoryCatalog() *pkg.Collection { + catalog := pkg.NewCollection() // populate catalog with test data catalog.Add(pkg.Package{ @@ -252,8 +253,8 @@ func newDirectoryCatalog() *pkg.Catalog { }, }, PURL: "a-purl-2", - CPEs: []pkg.CPE{ - pkg.MustCPE("cpe:2.3:*:some:package:2:*:*:*:*:*:*:*"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:*:some:package:2:*:*:*:*:*:*:*"), }, }) catalog.Add(pkg.Package{ @@ -270,8 +271,8 @@ func newDirectoryCatalog() *pkg.Catalog { Version: "2.0.1", }, PURL: "a-purl-2", - CPEs: []pkg.CPE{ - pkg.MustCPE("cpe:2.3:*:some:package:2:*:*:*:*:*:*:*"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:*:some:package:2:*:*:*:*:*:*:*"), }, }) diff --git a/internal/formats/spdx22json/to_format_model.go b/internal/formats/spdx22json/to_format_model.go index adfa7543c..dda31f293 100644 --- a/internal/formats/spdx22json/to_format_model.go +++ b/internal/formats/spdx22json/to_format_model.go @@ -48,7 +48,7 @@ func toFormatModel(s sbom.SBOM) (*model.Document, error) { }, nil } -func toPackages(catalog *pkg.Catalog, relationships []artifact.Relationship) []model.Package { +func toPackages(catalog *pkg.Collection, relationships []artifact.Relationship) []model.Package { packages := make([]model.Package, 0) for _, p := range catalog.Sorted() { diff --git a/internal/formats/spdx22tagvalue/to_format_model.go b/internal/formats/spdx22tagvalue/to_format_model.go index a52aba13b..ed11ce7b6 100644 --- a/internal/formats/spdx22tagvalue/to_format_model.go +++ b/internal/formats/spdx22tagvalue/to_format_model.go @@ -89,9 +89,9 @@ func toFormatModel(s sbom.SBOM) (*spdx.Document2_2, error) { }, nil } -// packages populates all Package Information from the package Catalog (see https://spdx.github.io/spdx-spec/3-package-information/) +// packages populates all Package Information from the package Collection (see https://spdx.github.io/spdx-spec/3-package-information/) // nolint: funlen -func toFormatPackages(catalog *pkg.Catalog) map[spdx.ElementID]*spdx.Package2_2 { +func toFormatPackages(catalog *pkg.Collection) map[spdx.ElementID]*spdx.Package2_2 { results := make(map[spdx.ElementID]*spdx.Package2_2) for _, p := range catalog.Sorted() { diff --git a/internal/formats/syftjson/encoder_test.go b/internal/formats/syftjson/encoder_test.go index 5fd8edc96..dd869e310 100644 --- a/internal/formats/syftjson/encoder_test.go +++ b/internal/formats/syftjson/encoder_test.go @@ -2,6 +2,7 @@ package syftjson import ( "flag" + "github.com/anchore/syft/syft/cpe" "testing" "github.com/anchore/syft/syft/file" @@ -37,7 +38,7 @@ func TestImageEncoder(t *testing.T) { } func TestEncodeFullJSONDocument(t *testing.T) { - catalog := pkg.NewCatalog() + catalog := pkg.NewCollection() p1 := pkg.Package{ Name: "package-1", @@ -60,8 +61,8 @@ func TestEncodeFullJSONDocument(t *testing.T) { Files: []pkg.PythonFileRecord{}, }, PURL: "a-purl-1", - CPEs: []pkg.CPE{ - pkg.MustCPE("cpe:2.3:*:some:package:1:*:*:*:*:*:*:*"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:*:some:package:1:*:*:*:*:*:*:*"), }, } @@ -84,8 +85,8 @@ func TestEncodeFullJSONDocument(t *testing.T) { Files: []pkg.DpkgFileRecord{}, }, PURL: "a-purl-2", - CPEs: []pkg.CPE{ - pkg.MustCPE("cpe:2.3:*:some:package:2:*:*:*:*:*:*:*"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:*:some:package:2:*:*:*:*:*:*:*"), }, } diff --git a/internal/formats/syftjson/to_format_model.go b/internal/formats/syftjson/to_format_model.go index 99bd388c7..9002a4aeb 100644 --- a/internal/formats/syftjson/to_format_model.go +++ b/internal/formats/syftjson/to_format_model.go @@ -2,6 +2,7 @@ package syftjson import ( "fmt" + "github.com/anchore/syft/syft/cpe" "sort" "strconv" @@ -152,7 +153,7 @@ func toFileMetadataEntry(coordinates file.Coordinates, metadata *file.Metadata) } } -func toPackageModels(catalog *pkg.Catalog) []model.Package { +func toPackageModels(catalog *pkg.Collection) []model.Package { artifacts := make([]model.Package, 0) if catalog == nil { return artifacts @@ -167,7 +168,7 @@ func toPackageModels(catalog *pkg.Catalog) []model.Package { func toPackageModel(p pkg.Package) model.Package { var cpes = make([]string, len(p.CPEs)) for i, c := range p.CPEs { - cpes[i] = pkg.CPEString(c) + cpes[i] = cpe.String(c) } var licenses = make([]string, 0) diff --git a/internal/formats/syftjson/to_syft_model.go b/internal/formats/syftjson/to_syft_model.go index b235b90f8..a9d4c361a 100644 --- a/internal/formats/syftjson/to_syft_model.go +++ b/internal/formats/syftjson/to_syft_model.go @@ -4,6 +4,7 @@ import ( "github.com/anchore/syft/internal/formats/syftjson/model" "github.com/anchore/syft/internal/log" "github.com/anchore/syft/syft/artifact" + "github.com/anchore/syft/syft/cpe" "github.com/anchore/syft/syft/file" "github.com/anchore/syft/syft/linux" "github.com/anchore/syft/syft/pkg" @@ -47,7 +48,7 @@ func toSyftLinuxRelease(d model.LinuxRelease) *linux.Release { } } -func toSyftRelationships(doc *model.Document, catalog *pkg.Catalog, relationships []model.Relationship) []artifact.Relationship { +func toSyftRelationships(doc *model.Document, catalog *pkg.Collection, relationships []model.Relationship) []artifact.Relationship { idMap := make(map[string]interface{}) for _, p := range catalog.Sorted() { @@ -129,8 +130,8 @@ func toSyftSourceData(s model.Source) *source.Metadata { return nil } -func toSyftCatalog(pkgs []model.Package) *pkg.Catalog { - catalog := pkg.NewCatalog() +func toSyftCatalog(pkgs []model.Package) *pkg.Collection { + catalog := pkg.NewCollection() for _, p := range pkgs { catalog.Add(toSyftPackage(p)) } @@ -138,9 +139,9 @@ func toSyftCatalog(pkgs []model.Package) *pkg.Catalog { } func toSyftPackage(p model.Package) pkg.Package { - var cpes []pkg.CPE + var cpes []cpe.CPE for _, c := range p.CPEs { - value, err := pkg.NewCPE(c) + value, err := cpe.New(c) if err != nil { log.Warnf("excluding invalid CPE %q: %v", c, err) continue diff --git a/syft/file/cataloger/fileclassifier/cataloger.go b/syft/cataloger/files/fileclassifier/cataloger.go similarity index 100% rename from syft/file/cataloger/fileclassifier/cataloger.go rename to syft/cataloger/files/fileclassifier/cataloger.go diff --git a/syft/file/cataloger/fileclassifier/cataloger_test.go b/syft/cataloger/files/fileclassifier/cataloger_test.go similarity index 100% rename from syft/file/cataloger/fileclassifier/cataloger_test.go rename to syft/cataloger/files/fileclassifier/cataloger_test.go diff --git a/syft/file/cataloger/fileclassifier/classifier.go b/syft/cataloger/files/fileclassifier/classifier.go similarity index 100% rename from syft/file/cataloger/fileclassifier/classifier.go rename to syft/cataloger/files/fileclassifier/classifier.go diff --git a/syft/file/cataloger/fileclassifier/classifier_test.go b/syft/cataloger/files/fileclassifier/classifier_test.go similarity index 100% rename from syft/file/cataloger/fileclassifier/classifier_test.go rename to syft/cataloger/files/fileclassifier/classifier_test.go diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/.gitignore b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/.gitignore similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/.gitignore rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/.gitignore diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/busybox b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/busybox similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/busybox rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/busybox diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/go b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/go similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/go rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/go diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/libpython2.7.so b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/libpython2.7.so similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/libpython2.7.so rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/libpython2.7.so diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/python2.6 b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/python2.6 similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/negative/python2.6 rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/negative/python2.6 diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/.gitignore b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/.gitignore similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/.gitignore rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/.gitignore diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/VERSION b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/VERSION similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/VERSION rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/VERSION diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/[ b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/[ similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/[ rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/[ diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/busybox b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/busybox similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/busybox rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/busybox diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/go b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/go similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/go rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/go diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/libpython3.7.so b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/libpython3.7.so similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/libpython3.7.so rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/libpython3.7.so diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/patchlevel.h b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/patchlevel.h similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/patchlevel.h rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/patchlevel.h diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/python3.6 b/syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/python3.6 similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/classifiers/positive/python3.6 rename to syft/cataloger/files/fileclassifier/test-fixtures/classifiers/positive/python3.6 diff --git a/syft/file/cataloger/fileclassifier/test-fixtures/image-busybox/Dockerfile b/syft/cataloger/files/fileclassifier/test-fixtures/image-busybox/Dockerfile similarity index 100% rename from syft/file/cataloger/fileclassifier/test-fixtures/image-busybox/Dockerfile rename to syft/cataloger/files/fileclassifier/test-fixtures/image-busybox/Dockerfile diff --git a/syft/file/cataloger/filecontents/cataloger.go b/syft/cataloger/files/filecontents/cataloger.go similarity index 100% rename from syft/file/cataloger/filecontents/cataloger.go rename to syft/cataloger/files/filecontents/cataloger.go diff --git a/syft/file/cataloger/filecontents/cataloger_test.go b/syft/cataloger/files/filecontents/cataloger_test.go similarity index 100% rename from syft/file/cataloger/filecontents/cataloger_test.go rename to syft/cataloger/files/filecontents/cataloger_test.go diff --git a/syft/file/cataloger/filecontents/test-fixtures/a-path.txt b/syft/cataloger/files/filecontents/test-fixtures/a-path.txt similarity index 100% rename from syft/file/cataloger/filecontents/test-fixtures/a-path.txt rename to syft/cataloger/files/filecontents/test-fixtures/a-path.txt diff --git a/syft/file/cataloger/filecontents/test-fixtures/another-path.txt b/syft/cataloger/files/filecontents/test-fixtures/another-path.txt similarity index 100% rename from syft/file/cataloger/filecontents/test-fixtures/another-path.txt rename to syft/cataloger/files/filecontents/test-fixtures/another-path.txt diff --git a/syft/file/cataloger/filecontents/test-fixtures/last/empty/empty b/syft/cataloger/files/filecontents/test-fixtures/last/empty/empty similarity index 100% rename from syft/file/cataloger/filecontents/test-fixtures/last/empty/empty rename to syft/cataloger/files/filecontents/test-fixtures/last/empty/empty diff --git a/syft/file/cataloger/filecontents/test-fixtures/last/path.txt b/syft/cataloger/files/filecontents/test-fixtures/last/path.txt similarity index 100% rename from syft/file/cataloger/filecontents/test-fixtures/last/path.txt rename to syft/cataloger/files/filecontents/test-fixtures/last/path.txt diff --git a/syft/file/cataloger/filedigests/cataloger.go b/syft/cataloger/files/filedigests/cataloger.go similarity index 100% rename from syft/file/cataloger/filedigests/cataloger.go rename to syft/cataloger/files/filedigests/cataloger.go diff --git a/syft/file/cataloger/filedigests/cataloger_test.go b/syft/cataloger/files/filedigests/cataloger_test.go similarity index 100% rename from syft/file/cataloger/filedigests/cataloger_test.go rename to syft/cataloger/files/filedigests/cataloger_test.go diff --git a/syft/file/cataloger/filedigests/test-fixtures/image-file-type-mix/Dockerfile b/syft/cataloger/files/filedigests/test-fixtures/image-file-type-mix/Dockerfile similarity index 100% rename from syft/file/cataloger/filedigests/test-fixtures/image-file-type-mix/Dockerfile rename to syft/cataloger/files/filedigests/test-fixtures/image-file-type-mix/Dockerfile diff --git a/syft/file/cataloger/filedigests/test-fixtures/image-file-type-mix/file-1.txt b/syft/cataloger/files/filedigests/test-fixtures/image-file-type-mix/file-1.txt similarity index 100% rename from syft/file/cataloger/filedigests/test-fixtures/image-file-type-mix/file-1.txt rename to syft/cataloger/files/filedigests/test-fixtures/image-file-type-mix/file-1.txt diff --git a/syft/file/cataloger/filedigests/test-fixtures/last/empty/empty b/syft/cataloger/files/filedigests/test-fixtures/last/empty/empty similarity index 100% rename from syft/file/cataloger/filedigests/test-fixtures/last/empty/empty rename to syft/cataloger/files/filedigests/test-fixtures/last/empty/empty diff --git a/syft/file/cataloger/filedigests/test-fixtures/last/path.txt b/syft/cataloger/files/filedigests/test-fixtures/last/path.txt similarity index 100% rename from syft/file/cataloger/filedigests/test-fixtures/last/path.txt rename to syft/cataloger/files/filedigests/test-fixtures/last/path.txt diff --git a/syft/file/cataloger/filemetadata/cataloger.go b/syft/cataloger/files/filemetadata/cataloger.go similarity index 100% rename from syft/file/cataloger/filemetadata/cataloger.go rename to syft/cataloger/files/filemetadata/cataloger.go diff --git a/syft/file/cataloger/filemetadata/cataloger_test.go b/syft/cataloger/files/filemetadata/cataloger_test.go similarity index 100% rename from syft/file/cataloger/filemetadata/cataloger_test.go rename to syft/cataloger/files/filemetadata/cataloger_test.go diff --git a/syft/file/cataloger/filemetadata/test-fixtures/image-file-type-mix/Dockerfile b/syft/cataloger/files/filemetadata/test-fixtures/image-file-type-mix/Dockerfile similarity index 100% rename from syft/file/cataloger/filemetadata/test-fixtures/image-file-type-mix/Dockerfile rename to syft/cataloger/files/filemetadata/test-fixtures/image-file-type-mix/Dockerfile diff --git a/syft/file/cataloger/filemetadata/test-fixtures/image-file-type-mix/file-1.txt b/syft/cataloger/files/filemetadata/test-fixtures/image-file-type-mix/file-1.txt similarity index 100% rename from syft/file/cataloger/filemetadata/test-fixtures/image-file-type-mix/file-1.txt rename to syft/cataloger/files/filemetadata/test-fixtures/image-file-type-mix/file-1.txt diff --git a/syft/file/cataloger/secrets/cataloger.go b/syft/cataloger/files/secrets/cataloger.go similarity index 100% rename from syft/file/cataloger/secrets/cataloger.go rename to syft/cataloger/files/secrets/cataloger.go diff --git a/syft/file/cataloger/secrets/cataloger_test.go b/syft/cataloger/files/secrets/cataloger_test.go similarity index 100% rename from syft/file/cataloger/secrets/cataloger_test.go rename to syft/cataloger/files/secrets/cataloger_test.go diff --git a/syft/file/cataloger/secrets/newline_counter.go b/syft/cataloger/files/secrets/newline_counter.go similarity index 100% rename from syft/file/cataloger/secrets/newline_counter.go rename to syft/cataloger/files/secrets/newline_counter.go diff --git a/syft/file/cataloger/secrets/newline_counter_test.go b/syft/cataloger/files/secrets/newline_counter_test.go similarity index 100% rename from syft/file/cataloger/secrets/newline_counter_test.go rename to syft/cataloger/files/secrets/newline_counter_test.go diff --git a/syft/file/cataloger/secrets/secrets_search_by_line_strategy.go b/syft/cataloger/files/secrets/secrets_search_by_line_strategy.go similarity index 100% rename from syft/file/cataloger/secrets/secrets_search_by_line_strategy.go rename to syft/cataloger/files/secrets/secrets_search_by_line_strategy.go diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/default/api-key.txt b/syft/cataloger/files/secrets/test-fixtures/secrets/default/api-key.txt similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/default/api-key.txt rename to syft/cataloger/files/secrets/test-fixtures/secrets/default/api-key.txt diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/default/aws.env b/syft/cataloger/files/secrets/test-fixtures/secrets/default/aws.env similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/default/aws.env rename to syft/cataloger/files/secrets/test-fixtures/secrets/default/aws.env diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/default/aws.ini b/syft/cataloger/files/secrets/test-fixtures/secrets/default/aws.ini similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/default/aws.ini rename to syft/cataloger/files/secrets/test-fixtures/secrets/default/aws.ini diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/default/docker-config.json b/syft/cataloger/files/secrets/test-fixtures/secrets/default/docker-config.json similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/default/docker-config.json rename to syft/cataloger/files/secrets/test-fixtures/secrets/default/docker-config.json diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/default/not-docker-config.json b/syft/cataloger/files/secrets/test-fixtures/secrets/default/not-docker-config.json similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/default/not-docker-config.json rename to syft/cataloger/files/secrets/test-fixtures/secrets/default/not-docker-config.json diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/default/private-key-false-positive.pem b/syft/cataloger/files/secrets/test-fixtures/secrets/default/private-key-false-positive.pem similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/default/private-key-false-positive.pem rename to syft/cataloger/files/secrets/test-fixtures/secrets/default/private-key-false-positive.pem diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/default/private-key-openssl.pem b/syft/cataloger/files/secrets/test-fixtures/secrets/default/private-key-openssl.pem similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/default/private-key-openssl.pem rename to syft/cataloger/files/secrets/test-fixtures/secrets/default/private-key-openssl.pem diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/default/private-key.pem b/syft/cataloger/files/secrets/test-fixtures/secrets/default/private-key.pem similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/default/private-key.pem rename to syft/cataloger/files/secrets/test-fixtures/secrets/default/private-key.pem diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/default/private-keys.pem b/syft/cataloger/files/secrets/test-fixtures/secrets/default/private-keys.pem similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/default/private-keys.pem rename to syft/cataloger/files/secrets/test-fixtures/secrets/default/private-keys.pem diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/multiple.txt b/syft/cataloger/files/secrets/test-fixtures/secrets/multiple.txt similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/multiple.txt rename to syft/cataloger/files/secrets/test-fixtures/secrets/multiple.txt diff --git a/syft/file/cataloger/secrets/test-fixtures/secrets/simple.txt b/syft/cataloger/files/secrets/test-fixtures/secrets/simple.txt similarity index 100% rename from syft/file/cataloger/secrets/test-fixtures/secrets/simple.txt rename to syft/cataloger/files/secrets/test-fixtures/secrets/simple.txt diff --git a/syft/pkg/cataloger/apkdb/cataloger.go b/syft/cataloger/packages/apkdb/cataloger.go similarity index 87% rename from syft/pkg/cataloger/apkdb/cataloger.go rename to syft/cataloger/packages/apkdb/cataloger.go index 73ef4a3f0..b71e8b6d9 100644 --- a/syft/pkg/cataloger/apkdb/cataloger.go +++ b/syft/cataloger/packages/apkdb/cataloger.go @@ -4,8 +4,8 @@ Package apkdb provides a concrete Cataloger implementation for Alpine DB files. package apkdb import ( + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/pkg" - "github.com/anchore/syft/syft/pkg/cataloger/generic" ) // NewApkdbCataloger returns a new Alpine DB cataloger object. diff --git a/syft/pkg/cataloger/apkdb/parse_apk_db.go b/syft/cataloger/packages/apkdb/parse_apk_db.go similarity index 98% rename from syft/pkg/cataloger/apkdb/parse_apk_db.go rename to syft/cataloger/packages/apkdb/parse_apk_db.go index 5aae0f94b..4f17695d2 100644 --- a/syft/pkg/cataloger/apkdb/parse_apk_db.go +++ b/syft/cataloger/packages/apkdb/parse_apk_db.go @@ -8,7 +8,7 @@ import ( "strconv" "strings" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" diff --git a/syft/pkg/cataloger/apkdb/parse_apk_db_test.go b/syft/cataloger/packages/apkdb/parse_apk_db_test.go similarity index 100% rename from syft/pkg/cataloger/apkdb/parse_apk_db_test.go rename to syft/cataloger/packages/apkdb/parse_apk_db_test.go diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/base b/syft/cataloger/packages/apkdb/test-fixtures/base similarity index 100% rename from syft/pkg/cataloger/apkdb/test-fixtures/base rename to syft/cataloger/packages/apkdb/test-fixtures/base diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/extra-file-attributes b/syft/cataloger/packages/apkdb/test-fixtures/extra-file-attributes similarity index 100% rename from syft/pkg/cataloger/apkdb/test-fixtures/extra-file-attributes rename to syft/cataloger/packages/apkdb/test-fixtures/extra-file-attributes diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/multiple b/syft/cataloger/packages/apkdb/test-fixtures/multiple similarity index 100% rename from syft/pkg/cataloger/apkdb/test-fixtures/multiple rename to syft/cataloger/packages/apkdb/test-fixtures/multiple diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/single b/syft/cataloger/packages/apkdb/test-fixtures/single similarity index 100% rename from syft/pkg/cataloger/apkdb/test-fixtures/single rename to syft/cataloger/packages/apkdb/test-fixtures/single diff --git a/syft/pkg/cataloger/packages/catalog.go b/syft/cataloger/packages/catalog.go similarity index 95% rename from syft/pkg/cataloger/packages/catalog.go rename to syft/cataloger/packages/catalog.go index b084c654d..56860fec7 100644 --- a/syft/pkg/cataloger/packages/catalog.go +++ b/syft/cataloger/packages/catalog.go @@ -2,16 +2,16 @@ package packages import ( "fmt" - "github.com/anchore/syft/syft/file" + "github.com/anchore/syft/syft/pkg" "github.com/anchore/syft/internal/bus" "github.com/anchore/syft/internal/log" "github.com/anchore/syft/syft/artifact" - "github.com/anchore/syft/syft/cpe" "github.com/anchore/syft/syft/event" "github.com/anchore/syft/syft/event/monitor" + "github.com/anchore/syft/syft/file" "github.com/anchore/syft/syft/linux" - "github.com/anchore/syft/syft/pkg" + "github.com/anchore/syft/syft/speculate/cpes" "github.com/hashicorp/go-multierror" "github.com/wagoodman/go-partybus" "github.com/wagoodman/go-progress" @@ -21,8 +21,8 @@ import ( // In order to efficiently retrieve contents from an underlying container image the content fetch requests are // done in bulk. Specifically, all files of interest are collected from each cataloger and accumulated into a single // request. -func Catalog(resolver file.Resolver, release *linux.Release, catalogers ...pkg.Cataloger) (*pkg.Catalog, []artifact.Relationship, error) { - catalog := pkg.NewCatalog() +func Catalog(resolver file.Resolver, release *linux.Release, catalogers ...pkg.Cataloger) (*pkg.Collection, []artifact.Relationship, error) { + catalog := pkg.NewCollection() var allRelationships []artifact.Relationship filesProcessed, packagesDiscovered := newPackageCatalogerMonitor() @@ -45,7 +45,7 @@ func Catalog(resolver file.Resolver, release *linux.Release, catalogers ...pkg.C for _, p := range packages { // generate CPEs (note: this is excluded from package ID, so is safe to mutate) - p.CPEs = cpe.Generate(p) + p.CPEs = cpes.Generate(p) // generate PURL (note: this is excluded from package ID, so is safe to mutate) p.PURL = pkg.URL(p, release) diff --git a/syft/pkg/cataloger/packages/catalogers.go b/syft/cataloger/packages/cataloger_groups.go similarity index 80% rename from syft/pkg/cataloger/packages/catalogers.go rename to syft/cataloger/packages/cataloger_groups.go index 8b6420c30..7921f1c85 100644 --- a/syft/pkg/cataloger/packages/catalogers.go +++ b/syft/cataloger/packages/cataloger_groups.go @@ -1,17 +1,17 @@ package packages import ( + "github.com/anchore/syft/syft/cataloger/packages/apkdb" + "github.com/anchore/syft/syft/cataloger/packages/deb" + "github.com/anchore/syft/syft/cataloger/packages/golang" + "github.com/anchore/syft/syft/cataloger/packages/java" + "github.com/anchore/syft/syft/cataloger/packages/javascript" + "github.com/anchore/syft/syft/cataloger/packages/php" + "github.com/anchore/syft/syft/cataloger/packages/python" + "github.com/anchore/syft/syft/cataloger/packages/rpmdb" + "github.com/anchore/syft/syft/cataloger/packages/ruby" + "github.com/anchore/syft/syft/cataloger/packages/rust" "github.com/anchore/syft/syft/pkg" - "github.com/anchore/syft/syft/pkg/cataloger/apkdb" - "github.com/anchore/syft/syft/pkg/cataloger/deb" - "github.com/anchore/syft/syft/pkg/cataloger/golang" - "github.com/anchore/syft/syft/pkg/cataloger/java" - "github.com/anchore/syft/syft/pkg/cataloger/javascript" - "github.com/anchore/syft/syft/pkg/cataloger/php" - "github.com/anchore/syft/syft/pkg/cataloger/python" - "github.com/anchore/syft/syft/pkg/cataloger/rpmdb" - "github.com/anchore/syft/syft/pkg/cataloger/ruby" - "github.com/anchore/syft/syft/pkg/cataloger/rust" "github.com/anchore/syft/syft/source" ) diff --git a/syft/pkg/cataloger/deb/cataloger.go b/syft/cataloger/packages/deb/cataloger.go similarity index 100% rename from syft/pkg/cataloger/deb/cataloger.go rename to syft/cataloger/packages/deb/cataloger.go diff --git a/syft/pkg/cataloger/deb/cataloger_test.go b/syft/cataloger/packages/deb/cataloger_test.go similarity index 100% rename from syft/pkg/cataloger/deb/cataloger_test.go rename to syft/cataloger/packages/deb/cataloger_test.go diff --git a/syft/pkg/cataloger/deb/parse_copyright.go b/syft/cataloger/packages/deb/parse_copyright.go similarity index 100% rename from syft/pkg/cataloger/deb/parse_copyright.go rename to syft/cataloger/packages/deb/parse_copyright.go diff --git a/syft/pkg/cataloger/deb/parse_copyright_test.go b/syft/cataloger/packages/deb/parse_copyright_test.go similarity index 100% rename from syft/pkg/cataloger/deb/parse_copyright_test.go rename to syft/cataloger/packages/deb/parse_copyright_test.go diff --git a/syft/pkg/cataloger/deb/parse_dpkg_info_files.go b/syft/cataloger/packages/deb/parse_dpkg_info_files.go similarity index 100% rename from syft/pkg/cataloger/deb/parse_dpkg_info_files.go rename to syft/cataloger/packages/deb/parse_dpkg_info_files.go diff --git a/syft/pkg/cataloger/deb/parse_dpkg_info_files_test.go b/syft/cataloger/packages/deb/parse_dpkg_info_files_test.go similarity index 100% rename from syft/pkg/cataloger/deb/parse_dpkg_info_files_test.go rename to syft/cataloger/packages/deb/parse_dpkg_info_files_test.go diff --git a/syft/pkg/cataloger/deb/parse_dpkg_status.go b/syft/cataloger/packages/deb/parse_dpkg_status.go similarity index 100% rename from syft/pkg/cataloger/deb/parse_dpkg_status.go rename to syft/cataloger/packages/deb/parse_dpkg_status.go diff --git a/syft/pkg/cataloger/deb/parse_dpkg_status_test.go b/syft/cataloger/packages/deb/parse_dpkg_status_test.go similarity index 100% rename from syft/pkg/cataloger/deb/parse_dpkg_status_test.go rename to syft/cataloger/packages/deb/parse_dpkg_status_test.go diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/libaudit-common b/syft/cataloger/packages/deb/test-fixtures/copyright/libaudit-common similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/copyright/libaudit-common rename to syft/cataloger/packages/deb/test-fixtures/copyright/libaudit-common diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/libc6 b/syft/cataloger/packages/deb/test-fixtures/copyright/libc6 similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/copyright/libc6 rename to syft/cataloger/packages/deb/test-fixtures/copyright/libc6 diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/liblzma5 b/syft/cataloger/packages/deb/test-fixtures/copyright/liblzma5 similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/copyright/liblzma5 rename to syft/cataloger/packages/deb/test-fixtures/copyright/liblzma5 diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/python b/syft/cataloger/packages/deb/test-fixtures/copyright/python similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/copyright/python rename to syft/cataloger/packages/deb/test-fixtures/copyright/python diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/trilicense b/syft/cataloger/packages/deb/test-fixtures/copyright/trilicense similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/copyright/trilicense rename to syft/cataloger/packages/deb/test-fixtures/copyright/trilicense diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/Dockerfile b/syft/cataloger/packages/deb/test-fixtures/image-dpkg/Dockerfile similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/Dockerfile rename to syft/cataloger/packages/deb/test-fixtures/image-dpkg/Dockerfile diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/usr/share/doc/libpam-runtime/copyright b/syft/cataloger/packages/deb/test-fixtures/image-dpkg/usr/share/doc/libpam-runtime/copyright similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/usr/share/doc/libpam-runtime/copyright rename to syft/cataloger/packages/deb/test-fixtures/image-dpkg/usr/share/doc/libpam-runtime/copyright diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.conffiles b/syft/cataloger/packages/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.conffiles similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.conffiles rename to syft/cataloger/packages/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.conffiles diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.md5sums b/syft/cataloger/packages/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.md5sums similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.md5sums rename to syft/cataloger/packages/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.md5sums diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/status b/syft/cataloger/packages/deb/test-fixtures/image-dpkg/var/lib/dpkg/status similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/status rename to syft/cataloger/packages/deb/test-fixtures/image-dpkg/var/lib/dpkg/status diff --git a/syft/pkg/cataloger/deb/test-fixtures/info/util-linux.conffiles b/syft/cataloger/packages/deb/test-fixtures/info/util-linux.conffiles similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/info/util-linux.conffiles rename to syft/cataloger/packages/deb/test-fixtures/info/util-linux.conffiles diff --git a/syft/pkg/cataloger/deb/test-fixtures/info/zlib1g.md5sums b/syft/cataloger/packages/deb/test-fixtures/info/zlib1g.md5sums similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/info/zlib1g.md5sums rename to syft/cataloger/packages/deb/test-fixtures/info/zlib1g.md5sums diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/installed-size-4KB b/syft/cataloger/packages/deb/test-fixtures/status/installed-size-4KB similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/status/installed-size-4KB rename to syft/cataloger/packages/deb/test-fixtures/status/installed-size-4KB diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/multiple b/syft/cataloger/packages/deb/test-fixtures/status/multiple similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/status/multiple rename to syft/cataloger/packages/deb/test-fixtures/status/multiple diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/single b/syft/cataloger/packages/deb/test-fixtures/status/single similarity index 100% rename from syft/pkg/cataloger/deb/test-fixtures/status/single rename to syft/cataloger/packages/deb/test-fixtures/status/single diff --git a/syft/pkg/cataloger/generic/cataloger.go b/syft/cataloger/packages/generic/cataloger.go similarity index 100% rename from syft/pkg/cataloger/generic/cataloger.go rename to syft/cataloger/packages/generic/cataloger.go diff --git a/syft/pkg/cataloger/generic/cataloger_test.go b/syft/cataloger/packages/generic/cataloger_test.go similarity index 100% rename from syft/pkg/cataloger/generic/cataloger_test.go rename to syft/cataloger/packages/generic/cataloger_test.go diff --git a/syft/pkg/cataloger/generic/parser.go b/syft/cataloger/packages/generic/parser.go similarity index 100% rename from syft/pkg/cataloger/generic/parser.go rename to syft/cataloger/packages/generic/parser.go diff --git a/syft/pkg/cataloger/generic/test-fixtures/a-path.txt b/syft/cataloger/packages/generic/test-fixtures/a-path.txt similarity index 100% rename from syft/pkg/cataloger/generic/test-fixtures/a-path.txt rename to syft/cataloger/packages/generic/test-fixtures/a-path.txt diff --git a/syft/pkg/cataloger/generic/test-fixtures/another-path.txt b/syft/cataloger/packages/generic/test-fixtures/another-path.txt similarity index 100% rename from syft/pkg/cataloger/generic/test-fixtures/another-path.txt rename to syft/cataloger/packages/generic/test-fixtures/another-path.txt diff --git a/syft/pkg/cataloger/generic/test-fixtures/last/path.txt b/syft/cataloger/packages/generic/test-fixtures/last/path.txt similarity index 100% rename from syft/pkg/cataloger/generic/test-fixtures/last/path.txt rename to syft/cataloger/packages/generic/test-fixtures/last/path.txt diff --git a/syft/pkg/cataloger/golang/binary_cataloger.go b/syft/cataloger/packages/golang/binary_cataloger.go similarity index 100% rename from syft/pkg/cataloger/golang/binary_cataloger.go rename to syft/cataloger/packages/golang/binary_cataloger.go diff --git a/syft/pkg/cataloger/golang/exe.go b/syft/cataloger/packages/golang/exe.go similarity index 100% rename from syft/pkg/cataloger/golang/exe.go rename to syft/cataloger/packages/golang/exe.go diff --git a/syft/pkg/cataloger/golang/exe_test.go b/syft/cataloger/packages/golang/exe_test.go similarity index 100% rename from syft/pkg/cataloger/golang/exe_test.go rename to syft/cataloger/packages/golang/exe_test.go diff --git a/syft/pkg/cataloger/golang/mod_cataloger.go b/syft/cataloger/packages/golang/mod_cataloger.go similarity index 86% rename from syft/pkg/cataloger/golang/mod_cataloger.go rename to syft/cataloger/packages/golang/mod_cataloger.go index 12e34d2c6..995fba954 100644 --- a/syft/pkg/cataloger/golang/mod_cataloger.go +++ b/syft/cataloger/packages/golang/mod_cataloger.go @@ -4,7 +4,7 @@ Package golang provides a concrete Cataloger implementation for go.mod files. package golang import ( - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" ) // NewGoModFileCataloger returns a new Go module cataloger object. diff --git a/syft/pkg/cataloger/golang/parse_go_bin.go b/syft/cataloger/packages/golang/parse_go_bin.go similarity index 100% rename from syft/pkg/cataloger/golang/parse_go_bin.go rename to syft/cataloger/packages/golang/parse_go_bin.go diff --git a/syft/pkg/cataloger/golang/parse_go_bin_test.go b/syft/cataloger/packages/golang/parse_go_bin_test.go similarity index 100% rename from syft/pkg/cataloger/golang/parse_go_bin_test.go rename to syft/cataloger/packages/golang/parse_go_bin_test.go diff --git a/syft/pkg/cataloger/golang/parse_go_mod.go b/syft/cataloger/packages/golang/parse_go_mod.go similarity index 100% rename from syft/pkg/cataloger/golang/parse_go_mod.go rename to syft/cataloger/packages/golang/parse_go_mod.go diff --git a/syft/pkg/cataloger/golang/parse_go_mod_test.go b/syft/cataloger/packages/golang/parse_go_mod_test.go similarity index 100% rename from syft/pkg/cataloger/golang/parse_go_mod_test.go rename to syft/cataloger/packages/golang/parse_go_mod_test.go diff --git a/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-linux-arm b/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-linux-arm new file mode 100755 index 000000000..10dd36977 Binary files /dev/null and b/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-linux-arm differ diff --git a/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-linux-ppc64le b/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-linux-ppc64le new file mode 100755 index 000000000..ec5a8a6b3 Binary files /dev/null and b/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-linux-ppc64le differ diff --git a/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-mach-o-arm64 b/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-mach-o-arm64 new file mode 100755 index 000000000..746b3500b Binary files /dev/null and b/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-mach-o-arm64 differ diff --git a/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-win-amd64 b/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-win-amd64 new file mode 100755 index 000000000..9a327917c Binary files /dev/null and b/syft/cataloger/packages/golang/test-fixtures/archs/binaries/hello-win-amd64 differ diff --git a/syft/pkg/cataloger/golang/test-fixtures/many-packages b/syft/cataloger/packages/golang/test-fixtures/many-packages similarity index 100% rename from syft/pkg/cataloger/golang/test-fixtures/many-packages rename to syft/cataloger/packages/golang/test-fixtures/many-packages diff --git a/syft/pkg/cataloger/golang/test-fixtures/one-package b/syft/cataloger/packages/golang/test-fixtures/one-package similarity index 100% rename from syft/pkg/cataloger/golang/test-fixtures/one-package rename to syft/cataloger/packages/golang/test-fixtures/one-package diff --git a/syft/pkg/cataloger/golang/version.go b/syft/cataloger/packages/golang/version.go similarity index 100% rename from syft/pkg/cataloger/golang/version.go rename to syft/cataloger/packages/golang/version.go diff --git a/syft/pkg/cataloger/java/archive_filename.go b/syft/cataloger/packages/java/archive_filename.go similarity index 100% rename from syft/pkg/cataloger/java/archive_filename.go rename to syft/cataloger/packages/java/archive_filename.go diff --git a/syft/pkg/cataloger/java/archive_filename_test.go b/syft/cataloger/packages/java/archive_filename_test.go similarity index 100% rename from syft/pkg/cataloger/java/archive_filename_test.go rename to syft/cataloger/packages/java/archive_filename_test.go diff --git a/syft/pkg/cataloger/java/archive_parser.go b/syft/cataloger/packages/java/archive_parser.go similarity index 99% rename from syft/pkg/cataloger/java/archive_parser.go rename to syft/cataloger/packages/java/archive_parser.go index 270044f65..7f84db914 100644 --- a/syft/pkg/cataloger/java/archive_parser.go +++ b/syft/cataloger/packages/java/archive_parser.go @@ -10,9 +10,9 @@ import ( "github.com/anchore/syft/internal/log" "github.com/anchore/syft/syft/artifact" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/file" "github.com/anchore/syft/syft/pkg" - "github.com/anchore/syft/syft/pkg/cataloger/generic" ) // integrity check diff --git a/syft/pkg/cataloger/java/archive_parser_test.go b/syft/cataloger/packages/java/archive_parser_test.go similarity index 100% rename from syft/pkg/cataloger/java/archive_parser_test.go rename to syft/cataloger/packages/java/archive_parser_test.go diff --git a/syft/pkg/cataloger/java/cataloger.go b/syft/cataloger/packages/java/cataloger.go similarity index 93% rename from syft/pkg/cataloger/java/cataloger.go rename to syft/cataloger/packages/java/cataloger.go index d645a1f6f..011bd2564 100644 --- a/syft/pkg/cataloger/java/cataloger.go +++ b/syft/cataloger/packages/java/cataloger.go @@ -4,7 +4,7 @@ Package java provides a concrete Cataloger implementation for Java archives (jar package java import ( - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" ) // NewJavaCataloger returns a new Java archive cataloger object. diff --git a/syft/pkg/cataloger/java/config.go b/syft/cataloger/packages/java/config.go similarity index 100% rename from syft/pkg/cataloger/java/config.go rename to syft/cataloger/packages/java/config.go diff --git a/syft/pkg/cataloger/java/package_url.go b/syft/cataloger/packages/java/package_url.go similarity index 86% rename from syft/pkg/cataloger/java/package_url.go rename to syft/cataloger/packages/java/package_url.go index 53b0d9e8a..f3386782e 100644 --- a/syft/pkg/cataloger/java/package_url.go +++ b/syft/cataloger/packages/java/package_url.go @@ -2,14 +2,14 @@ package java import ( "github.com/anchore/packageurl-go" - "github.com/anchore/syft/syft/cpe" "github.com/anchore/syft/syft/pkg" + "github.com/anchore/syft/syft/speculate/cpes" ) // PackageURL returns the PURL for the specific java package (see https://github.com/package-url/purl-spec) func packageURL(p pkg.Package) string { var groupID = p.Name - groupIDs := cpe.GroupIDsFromJavaPackage(p) + groupIDs := cpes.GroupIDsFromJavaPackage(p) if len(groupIDs) > 0 { groupID = groupIDs[0] } diff --git a/syft/pkg/cataloger/java/package_url_test.go b/syft/cataloger/packages/java/package_url_test.go similarity index 100% rename from syft/pkg/cataloger/java/package_url_test.go rename to syft/cataloger/packages/java/package_url_test.go diff --git a/syft/pkg/cataloger/java/parse_java_manifest.go b/syft/cataloger/packages/java/parse_java_manifest.go similarity index 100% rename from syft/pkg/cataloger/java/parse_java_manifest.go rename to syft/cataloger/packages/java/parse_java_manifest.go diff --git a/syft/pkg/cataloger/java/parse_java_manifest_test.go b/syft/cataloger/packages/java/parse_java_manifest_test.go similarity index 100% rename from syft/pkg/cataloger/java/parse_java_manifest_test.go rename to syft/cataloger/packages/java/parse_java_manifest_test.go diff --git a/syft/pkg/cataloger/java/parse_pom_properties.go b/syft/cataloger/packages/java/parse_pom_properties.go similarity index 100% rename from syft/pkg/cataloger/java/parse_pom_properties.go rename to syft/cataloger/packages/java/parse_pom_properties.go diff --git a/syft/pkg/cataloger/java/parse_pom_properties_test.go b/syft/cataloger/packages/java/parse_pom_properties_test.go similarity index 100% rename from syft/pkg/cataloger/java/parse_pom_properties_test.go rename to syft/cataloger/packages/java/parse_pom_properties_test.go diff --git a/syft/pkg/cataloger/java/parse_pom_xml.go b/syft/cataloger/packages/java/parse_pom_xml.go similarity index 100% rename from syft/pkg/cataloger/java/parse_pom_xml.go rename to syft/cataloger/packages/java/parse_pom_xml.go diff --git a/syft/pkg/cataloger/java/parse_pom_xml_test.go b/syft/cataloger/packages/java/parse_pom_xml_test.go similarity index 100% rename from syft/pkg/cataloger/java/parse_pom_xml_test.go rename to syft/cataloger/packages/java/parse_pom_xml_test.go diff --git a/syft/pkg/cataloger/java/save_archive_to_tmp.go b/syft/cataloger/packages/java/save_archive_to_tmp.go similarity index 100% rename from syft/pkg/cataloger/java/save_archive_to_tmp.go rename to syft/cataloger/packages/java/save_archive_to_tmp.go diff --git a/syft/pkg/cataloger/java/tar_wrapped_archive_parser.go b/syft/cataloger/packages/java/tar_wrapped_archive_parser.go similarity index 97% rename from syft/pkg/cataloger/java/tar_wrapped_archive_parser.go rename to syft/cataloger/packages/java/tar_wrapped_archive_parser.go index 868f5dd1d..a6488a816 100644 --- a/syft/pkg/cataloger/java/tar_wrapped_archive_parser.go +++ b/syft/cataloger/packages/java/tar_wrapped_archive_parser.go @@ -5,7 +5,7 @@ import ( "io" "github.com/anchore/syft/internal/archive" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" diff --git a/syft/pkg/cataloger/java/tar_wrapped_archive_parser_test.go b/syft/cataloger/packages/java/tar_wrapped_archive_parser_test.go similarity index 100% rename from syft/pkg/cataloger/java/tar_wrapped_archive_parser_test.go rename to syft/cataloger/packages/java/tar_wrapped_archive_parser_test.go diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/.gitignore b/syft/cataloger/packages/java/test-fixtures/java-builds/.gitignore similarity index 71% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/.gitignore rename to syft/cataloger/packages/java/test-fixtures/java-builds/.gitignore index 1685225cc..cd5668844 100644 --- a/syft/pkg/cataloger/java/test-fixtures/java-builds/.gitignore +++ b/syft/cataloger/packages/java/test-fixtures/java-builds/.gitignore @@ -1,4 +1,4 @@ -/packages/* +/packages/example-jenkins-plugin.hpi *.fingerprint # maven when running in a volume may spit out directories like this **/\?/ diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/Makefile b/syft/cataloger/packages/java/test-fixtures/java-builds/Makefile similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/Makefile rename to syft/cataloger/packages/java/test-fixtures/java-builds/Makefile diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/build-example-java-app-gradle.sh b/syft/cataloger/packages/java/test-fixtures/java-builds/build-example-java-app-gradle.sh similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/build-example-java-app-gradle.sh rename to syft/cataloger/packages/java/test-fixtures/java-builds/build-example-java-app-gradle.sh diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/build-example-java-app-maven.sh b/syft/cataloger/packages/java/test-fixtures/java-builds/build-example-java-app-maven.sh similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/build-example-java-app-maven.sh rename to syft/cataloger/packages/java/test-fixtures/java-builds/build-example-java-app-maven.sh diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/build-example-jenkins-plugin.sh b/syft/cataloger/packages/java/test-fixtures/java-builds/build-example-jenkins-plugin.sh similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/build-example-jenkins-plugin.sh rename to syft/cataloger/packages/java/test-fixtures/java-builds/build-example-jenkins-plugin.sh diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/build-example-sb-app-nestedjar.sh b/syft/cataloger/packages/java/test-fixtures/java-builds/build-example-sb-app-nestedjar.sh similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/build-example-sb-app-nestedjar.sh rename to syft/cataloger/packages/java/test-fixtures/java-builds/build-example-sb-app-nestedjar.sh diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/.gitignore b/syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/.gitignore similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/.gitignore rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/.gitignore diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/build.gradle b/syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/build.gradle similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/build.gradle rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/build.gradle diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/pom.xml b/syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/pom.xml similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/pom.xml rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/pom.xml diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/src/main/java/hello/Greeter.java b/syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/src/main/java/hello/Greeter.java similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/src/main/java/hello/Greeter.java rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/src/main/java/hello/Greeter.java diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/src/main/java/hello/HelloWorld.java b/syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/src/main/java/hello/HelloWorld.java similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-java-app/src/main/java/hello/HelloWorld.java rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-java-app/src/main/java/hello/HelloWorld.java diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/pom.xml b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/pom.xml similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/pom.xml rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/pom.xml diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/java/io/jenkins/plugins/sample/HelloWorldBuilder.java b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/java/io/jenkins/plugins/sample/HelloWorldBuilder.java similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/java/io/jenkins/plugins/sample/HelloWorldBuilder.java rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/java/io/jenkins/plugins/sample/HelloWorldBuilder.java diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/index.jelly b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/index.jelly similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/index.jelly rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/index.jelly diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config.jelly b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config.jelly similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config.jelly rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config.jelly diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config.properties b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config.properties similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config.properties rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config.properties diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config_fr.properties b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config_fr.properties similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config_fr.properties rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/config_fr.properties diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-name.html b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-name.html similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-name.html rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-name.html diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-name_fr.html b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-name_fr.html similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-name_fr.html rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-name_fr.html diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-useFrench.html b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-useFrench.html similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-useFrench.html rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-useFrench.html diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-useFrench_fr.html b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-useFrench_fr.html similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-useFrench_fr.html rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/HelloWorldBuilder/help-useFrench_fr.html diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/Messages.properties b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/Messages.properties similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/Messages.properties rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/Messages.properties diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/Messages_fr.properties b/syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/Messages_fr.properties similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/Messages_fr.properties rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-jenkins-plugin/src/main/resources/io/jenkins/plugins/sample/Messages_fr.properties diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/.gitignore b/syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/.gitignore similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/.gitignore rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/.gitignore diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/pom.xml b/syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/pom.xml similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/pom.xml rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/pom.xml diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/src/main/java/com/example/springboot/Application.java b/syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/src/main/java/com/example/springboot/Application.java similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/src/main/java/com/example/springboot/Application.java rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/src/main/java/com/example/springboot/Application.java diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/src/main/java/com/example/springboot/HelloController.java b/syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/src/main/java/com/example/springboot/HelloController.java similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/src/main/java/com/example/springboot/HelloController.java rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/src/main/java/com/example/springboot/HelloController.java diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/src/test/java/com/example/springboot/HelloControllerIT.java b/syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/src/test/java/com/example/springboot/HelloControllerIT.java similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/src/test/java/com/example/springboot/HelloControllerIT.java rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/src/test/java/com/example/springboot/HelloControllerIT.java diff --git a/syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/src/test/java/com/example/springboot/HelloControllerTest.java b/syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/src/test/java/com/example/springboot/HelloControllerTest.java similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/java-builds/example-sb-app/src/test/java/com/example/springboot/HelloControllerTest.java rename to syft/cataloger/packages/java/test-fixtures/java-builds/example-sb-app/src/test/java/com/example/springboot/HelloControllerTest.java diff --git a/syft/cataloger/packages/java/test-fixtures/java-builds/packages/example-java-app-maven-0.1.0.tar.gz b/syft/cataloger/packages/java/test-fixtures/java-builds/packages/example-java-app-maven-0.1.0.tar.gz new file mode 100644 index 000000000..a258359cd Binary files /dev/null and b/syft/cataloger/packages/java/test-fixtures/java-builds/packages/example-java-app-maven-0.1.0.tar.gz differ diff --git a/syft/pkg/cataloger/java/test-fixtures/manifest/continuation b/syft/cataloger/packages/java/test-fixtures/manifest/continuation similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/manifest/continuation rename to syft/cataloger/packages/java/test-fixtures/manifest/continuation diff --git a/syft/pkg/cataloger/java/test-fixtures/manifest/extra-empty-lines b/syft/cataloger/packages/java/test-fixtures/manifest/extra-empty-lines similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/manifest/extra-empty-lines rename to syft/cataloger/packages/java/test-fixtures/manifest/extra-empty-lines diff --git a/syft/pkg/cataloger/java/test-fixtures/manifest/extra-info b/syft/cataloger/packages/java/test-fixtures/manifest/extra-info similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/manifest/extra-info rename to syft/cataloger/packages/java/test-fixtures/manifest/extra-info diff --git a/syft/pkg/cataloger/java/test-fixtures/manifest/small b/syft/cataloger/packages/java/test-fixtures/manifest/small similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/manifest/small rename to syft/cataloger/packages/java/test-fixtures/manifest/small diff --git a/syft/pkg/cataloger/java/test-fixtures/manifest/standard-info b/syft/cataloger/packages/java/test-fixtures/manifest/standard-info similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/manifest/standard-info rename to syft/cataloger/packages/java/test-fixtures/manifest/standard-info diff --git a/syft/pkg/cataloger/java/test-fixtures/manifest/version-with-date b/syft/cataloger/packages/java/test-fixtures/manifest/version-with-date similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/manifest/version-with-date rename to syft/cataloger/packages/java/test-fixtures/manifest/version-with-date diff --git a/syft/pkg/cataloger/java/test-fixtures/pom/colon-delimited-with-equals.pom.properties b/syft/cataloger/packages/java/test-fixtures/pom/colon-delimited-with-equals.pom.properties similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/pom/colon-delimited-with-equals.pom.properties rename to syft/cataloger/packages/java/test-fixtures/pom/colon-delimited-with-equals.pom.properties diff --git a/syft/pkg/cataloger/java/test-fixtures/pom/colon-delimited.pom.properties b/syft/cataloger/packages/java/test-fixtures/pom/colon-delimited.pom.properties similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/pom/colon-delimited.pom.properties rename to syft/cataloger/packages/java/test-fixtures/pom/colon-delimited.pom.properties diff --git a/syft/pkg/cataloger/java/test-fixtures/pom/commons-codec.pom.xml b/syft/cataloger/packages/java/test-fixtures/pom/commons-codec.pom.xml similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/pom/commons-codec.pom.xml rename to syft/cataloger/packages/java/test-fixtures/pom/commons-codec.pom.xml diff --git a/syft/pkg/cataloger/java/test-fixtures/pom/equals-delimited-with-colons.pom.properties b/syft/cataloger/packages/java/test-fixtures/pom/equals-delimited-with-colons.pom.properties similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/pom/equals-delimited-with-colons.pom.properties rename to syft/cataloger/packages/java/test-fixtures/pom/equals-delimited-with-colons.pom.properties diff --git a/syft/pkg/cataloger/java/test-fixtures/pom/extra.pom.properties b/syft/cataloger/packages/java/test-fixtures/pom/extra.pom.properties similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/pom/extra.pom.properties rename to syft/cataloger/packages/java/test-fixtures/pom/extra.pom.properties diff --git a/syft/pkg/cataloger/java/test-fixtures/pom/small.pom.properties b/syft/cataloger/packages/java/test-fixtures/pom/small.pom.properties similarity index 100% rename from syft/pkg/cataloger/java/test-fixtures/pom/small.pom.properties rename to syft/cataloger/packages/java/test-fixtures/pom/small.pom.properties diff --git a/syft/pkg/cataloger/java/zip_wrapped_archive_parser.go b/syft/cataloger/packages/java/zip_wrapped_archive_parser.go similarity index 96% rename from syft/pkg/cataloger/java/zip_wrapped_archive_parser.go rename to syft/cataloger/packages/java/zip_wrapped_archive_parser.go index 366ebd05b..7b6af0192 100644 --- a/syft/pkg/cataloger/java/zip_wrapped_archive_parser.go +++ b/syft/cataloger/packages/java/zip_wrapped_archive_parser.go @@ -5,7 +5,7 @@ import ( "io" "github.com/anchore/syft/internal/archive" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" diff --git a/syft/pkg/cataloger/java/zip_wrapped_archive_parser_test.go b/syft/cataloger/packages/java/zip_wrapped_archive_parser_test.go similarity index 100% rename from syft/pkg/cataloger/java/zip_wrapped_archive_parser_test.go rename to syft/cataloger/packages/java/zip_wrapped_archive_parser_test.go diff --git a/syft/pkg/cataloger/javascript/cataloger.go b/syft/cataloger/packages/javascript/cataloger.go similarity index 93% rename from syft/pkg/cataloger/javascript/cataloger.go rename to syft/cataloger/packages/javascript/cataloger.go index 8229fbb02..dee7a39aa 100644 --- a/syft/pkg/cataloger/javascript/cataloger.go +++ b/syft/cataloger/packages/javascript/cataloger.go @@ -4,7 +4,7 @@ Package javascript provides a concrete Cataloger implementation for JavaScript e package javascript import ( - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" ) // NewJavascriptPackageCataloger returns a new JavaScript cataloger object based on detection of npm based packages. diff --git a/syft/pkg/cataloger/javascript/parse_package_json.go b/syft/cataloger/packages/javascript/parse_package_json.go similarity index 99% rename from syft/pkg/cataloger/javascript/parse_package_json.go rename to syft/cataloger/packages/javascript/parse_package_json.go index f3781492d..9b9c97772 100644 --- a/syft/pkg/cataloger/javascript/parse_package_json.go +++ b/syft/cataloger/packages/javascript/parse_package_json.go @@ -7,7 +7,7 @@ import ( "io" "regexp" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/internal/log" diff --git a/syft/pkg/cataloger/javascript/parse_package_json_test.go b/syft/cataloger/packages/javascript/parse_package_json_test.go similarity index 100% rename from syft/pkg/cataloger/javascript/parse_package_json_test.go rename to syft/cataloger/packages/javascript/parse_package_json_test.go diff --git a/syft/pkg/cataloger/javascript/parse_package_lock.go b/syft/cataloger/packages/javascript/parse_package_lock.go similarity index 96% rename from syft/pkg/cataloger/javascript/parse_package_lock.go rename to syft/cataloger/packages/javascript/parse_package_lock.go index 273b63614..f7711675a 100644 --- a/syft/pkg/cataloger/javascript/parse_package_lock.go +++ b/syft/cataloger/packages/javascript/parse_package_lock.go @@ -5,7 +5,7 @@ import ( "fmt" "io" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" diff --git a/syft/pkg/cataloger/javascript/parse_package_lock_test.go b/syft/cataloger/packages/javascript/parse_package_lock_test.go similarity index 100% rename from syft/pkg/cataloger/javascript/parse_package_lock_test.go rename to syft/cataloger/packages/javascript/parse_package_lock_test.go diff --git a/syft/pkg/cataloger/javascript/parse_yarn_lock.go b/syft/cataloger/packages/javascript/parse_yarn_lock.go similarity index 97% rename from syft/pkg/cataloger/javascript/parse_yarn_lock.go rename to syft/cataloger/packages/javascript/parse_yarn_lock.go index 36da82696..95e296d8d 100644 --- a/syft/pkg/cataloger/javascript/parse_yarn_lock.go +++ b/syft/cataloger/packages/javascript/parse_yarn_lock.go @@ -6,7 +6,7 @@ import ( "io" "regexp" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/internal" "github.com/anchore/syft/syft/artifact" diff --git a/syft/pkg/cataloger/javascript/parse_yarn_lock_test.go b/syft/cataloger/packages/javascript/parse_yarn_lock_test.go similarity index 100% rename from syft/pkg/cataloger/javascript/parse_yarn_lock_test.go rename to syft/cataloger/packages/javascript/parse_yarn_lock_test.go diff --git a/syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-license-object.json b/syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-license-object.json similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-license-object.json rename to syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-license-object.json diff --git a/syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-license-objects.json b/syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-license-objects.json similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-license-objects.json rename to syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-license-objects.json diff --git a/syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-nested-author.json b/syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-nested-author.json similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-nested-author.json rename to syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-nested-author.json diff --git a/syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-no-license.json b/syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-no-license.json similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-no-license.json rename to syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-no-license.json diff --git a/syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-partial.json b/syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-partial.json similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-partial.json rename to syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-partial.json diff --git a/syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-repo-string.json b/syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-repo-string.json similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package-repo-string.json rename to syft/cataloger/packages/javascript/test-fixtures/pkg-json/package-repo-string.json diff --git a/syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package.json b/syft/cataloger/packages/javascript/test-fixtures/pkg-json/package.json similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/pkg-json/package.json rename to syft/cataloger/packages/javascript/test-fixtures/pkg-json/package.json diff --git a/syft/pkg/cataloger/javascript/test-fixtures/pkg-lock/package-lock.json b/syft/cataloger/packages/javascript/test-fixtures/pkg-lock/package-lock.json similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/pkg-lock/package-lock.json rename to syft/cataloger/packages/javascript/test-fixtures/pkg-lock/package-lock.json diff --git a/syft/pkg/cataloger/javascript/test-fixtures/yarn-berry/yarn.lock b/syft/cataloger/packages/javascript/test-fixtures/yarn-berry/yarn.lock similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/yarn-berry/yarn.lock rename to syft/cataloger/packages/javascript/test-fixtures/yarn-berry/yarn.lock diff --git a/syft/pkg/cataloger/javascript/test-fixtures/yarn/yarn.lock b/syft/cataloger/packages/javascript/test-fixtures/yarn/yarn.lock similarity index 100% rename from syft/pkg/cataloger/javascript/test-fixtures/yarn/yarn.lock rename to syft/cataloger/packages/javascript/test-fixtures/yarn/yarn.lock diff --git a/syft/pkg/cataloger/php/cataloger.go b/syft/cataloger/packages/php/cataloger.go similarity index 92% rename from syft/pkg/cataloger/php/cataloger.go rename to syft/cataloger/packages/php/cataloger.go index 15aabe67d..da70c9868 100644 --- a/syft/pkg/cataloger/php/cataloger.go +++ b/syft/cataloger/packages/php/cataloger.go @@ -4,7 +4,7 @@ Package php provides a concrete Cataloger implementation for PHP ecosystem files package php import ( - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" ) // NewPHPComposerInstalledCataloger returns a new cataloger for PHP installed.json files. diff --git a/syft/pkg/cataloger/php/parse_composer_lock.go b/syft/cataloger/packages/php/parse_composer_lock.go similarity index 100% rename from syft/pkg/cataloger/php/parse_composer_lock.go rename to syft/cataloger/packages/php/parse_composer_lock.go diff --git a/syft/pkg/cataloger/php/parse_composer_lock_test.go b/syft/cataloger/packages/php/parse_composer_lock_test.go similarity index 100% rename from syft/pkg/cataloger/php/parse_composer_lock_test.go rename to syft/cataloger/packages/php/parse_composer_lock_test.go diff --git a/syft/pkg/cataloger/php/parse_installed_json.go b/syft/cataloger/packages/php/parse_installed_json.go similarity index 96% rename from syft/pkg/cataloger/php/parse_installed_json.go rename to syft/cataloger/packages/php/parse_installed_json.go index 8fcc54ca2..29fa3a88e 100644 --- a/syft/pkg/cataloger/php/parse_installed_json.go +++ b/syft/cataloger/packages/php/parse_installed_json.go @@ -5,7 +5,7 @@ import ( "fmt" "io" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" diff --git a/syft/pkg/cataloger/php/parse_installed_json_test.go b/syft/cataloger/packages/php/parse_installed_json_test.go similarity index 100% rename from syft/pkg/cataloger/php/parse_installed_json_test.go rename to syft/cataloger/packages/php/parse_installed_json_test.go diff --git a/syft/pkg/cataloger/php/test-fixtures/composer.lock b/syft/cataloger/packages/php/test-fixtures/composer.lock similarity index 100% rename from syft/pkg/cataloger/php/test-fixtures/composer.lock rename to syft/cataloger/packages/php/test-fixtures/composer.lock diff --git a/syft/pkg/cataloger/php/test-fixtures/vendor/composer_1/installed.json b/syft/cataloger/packages/php/test-fixtures/vendor/composer_1/installed.json similarity index 100% rename from syft/pkg/cataloger/php/test-fixtures/vendor/composer_1/installed.json rename to syft/cataloger/packages/php/test-fixtures/vendor/composer_1/installed.json diff --git a/syft/pkg/cataloger/php/test-fixtures/vendor/composer_2/installed.json b/syft/cataloger/packages/php/test-fixtures/vendor/composer_2/installed.json similarity index 100% rename from syft/pkg/cataloger/php/test-fixtures/vendor/composer_2/installed.json rename to syft/cataloger/packages/php/test-fixtures/vendor/composer_2/installed.json diff --git a/syft/pkg/cataloger/python/index_cataloger.go b/syft/cataloger/packages/python/index_cataloger.go similarity index 91% rename from syft/pkg/cataloger/python/index_cataloger.go rename to syft/cataloger/packages/python/index_cataloger.go index c98ce910b..cf80c7b46 100644 --- a/syft/pkg/cataloger/python/index_cataloger.go +++ b/syft/cataloger/packages/python/index_cataloger.go @@ -4,7 +4,7 @@ Package python provides a concrete Cataloger implementation for Python ecosystem package python import ( - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" ) // NewPythonIndexCataloger returns a new cataloger for python packages referenced from poetry lock files, requirements.txt files, and setup.py files. diff --git a/syft/pkg/cataloger/python/package_cataloger.go b/syft/cataloger/packages/python/package_cataloger.go similarity index 100% rename from syft/pkg/cataloger/python/package_cataloger.go rename to syft/cataloger/packages/python/package_cataloger.go diff --git a/syft/pkg/cataloger/python/package_cataloger_test.go b/syft/cataloger/packages/python/package_cataloger_test.go similarity index 100% rename from syft/pkg/cataloger/python/package_cataloger_test.go rename to syft/cataloger/packages/python/package_cataloger_test.go diff --git a/syft/pkg/cataloger/python/parse_pipfile_lock.go b/syft/cataloger/packages/python/parse_pipfile_lock.go similarity index 96% rename from syft/pkg/cataloger/python/parse_pipfile_lock.go rename to syft/cataloger/packages/python/parse_pipfile_lock.go index ecf044760..10ca80b20 100644 --- a/syft/pkg/cataloger/python/parse_pipfile_lock.go +++ b/syft/cataloger/packages/python/parse_pipfile_lock.go @@ -7,7 +7,7 @@ import ( "sort" "strings" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" diff --git a/syft/pkg/cataloger/python/parse_pipfile_lock_test.go b/syft/cataloger/packages/python/parse_pipfile_lock_test.go similarity index 100% rename from syft/pkg/cataloger/python/parse_pipfile_lock_test.go rename to syft/cataloger/packages/python/parse_pipfile_lock_test.go diff --git a/syft/pkg/cataloger/python/parse_poetry_lock.go b/syft/cataloger/packages/python/parse_poetry_lock.go similarity index 92% rename from syft/pkg/cataloger/python/parse_poetry_lock.go rename to syft/cataloger/packages/python/parse_poetry_lock.go index c3beef4b4..6b2c4568e 100644 --- a/syft/pkg/cataloger/python/parse_poetry_lock.go +++ b/syft/cataloger/packages/python/parse_poetry_lock.go @@ -4,7 +4,7 @@ import ( "fmt" "io" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" diff --git a/syft/pkg/cataloger/python/parse_poetry_lock_test.go b/syft/cataloger/packages/python/parse_poetry_lock_test.go similarity index 100% rename from syft/pkg/cataloger/python/parse_poetry_lock_test.go rename to syft/cataloger/packages/python/parse_poetry_lock_test.go diff --git a/syft/pkg/cataloger/python/parse_requirements.go b/syft/cataloger/packages/python/parse_requirements.go similarity index 97% rename from syft/pkg/cataloger/python/parse_requirements.go rename to syft/cataloger/packages/python/parse_requirements.go index 422a0fcd1..a69a9a3bc 100644 --- a/syft/pkg/cataloger/python/parse_requirements.go +++ b/syft/cataloger/packages/python/parse_requirements.go @@ -6,7 +6,7 @@ import ( "io" "strings" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" diff --git a/syft/pkg/cataloger/python/parse_requirements_test.go b/syft/cataloger/packages/python/parse_requirements_test.go similarity index 100% rename from syft/pkg/cataloger/python/parse_requirements_test.go rename to syft/cataloger/packages/python/parse_requirements_test.go diff --git a/syft/pkg/cataloger/python/parse_setup.go b/syft/cataloger/packages/python/parse_setup.go similarity index 95% rename from syft/pkg/cataloger/python/parse_setup.go rename to syft/cataloger/packages/python/parse_setup.go index ecddda95c..ea08bab0e 100644 --- a/syft/pkg/cataloger/python/parse_setup.go +++ b/syft/cataloger/packages/python/parse_setup.go @@ -6,7 +6,7 @@ import ( "regexp" "strings" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" diff --git a/syft/pkg/cataloger/python/parse_setup_test.go b/syft/cataloger/packages/python/parse_setup_test.go similarity index 100% rename from syft/pkg/cataloger/python/parse_setup_test.go rename to syft/cataloger/packages/python/parse_setup_test.go diff --git a/syft/pkg/cataloger/python/parse_wheel_egg_metadata.go b/syft/cataloger/packages/python/parse_wheel_egg_metadata.go similarity index 100% rename from syft/pkg/cataloger/python/parse_wheel_egg_metadata.go rename to syft/cataloger/packages/python/parse_wheel_egg_metadata.go diff --git a/syft/pkg/cataloger/python/parse_wheel_egg_metadata_test.go b/syft/cataloger/packages/python/parse_wheel_egg_metadata_test.go similarity index 100% rename from syft/pkg/cataloger/python/parse_wheel_egg_metadata_test.go rename to syft/cataloger/packages/python/parse_wheel_egg_metadata_test.go diff --git a/syft/pkg/cataloger/python/parse_wheel_egg_record.go b/syft/cataloger/packages/python/parse_wheel_egg_record.go similarity index 100% rename from syft/pkg/cataloger/python/parse_wheel_egg_record.go rename to syft/cataloger/packages/python/parse_wheel_egg_record.go diff --git a/syft/pkg/cataloger/python/parse_wheel_egg_record_test.go b/syft/cataloger/packages/python/parse_wheel_egg_record_test.go similarity index 100% rename from syft/pkg/cataloger/python/parse_wheel_egg_record_test.go rename to syft/cataloger/packages/python/parse_wheel_egg_record_test.go diff --git a/syft/pkg/cataloger/python/poetry_metadata.go b/syft/cataloger/packages/python/poetry_metadata.go similarity index 100% rename from syft/pkg/cataloger/python/poetry_metadata.go rename to syft/cataloger/packages/python/poetry_metadata.go diff --git a/syft/pkg/cataloger/python/poetry_metadata_package.go b/syft/cataloger/packages/python/poetry_metadata_package.go similarity index 100% rename from syft/pkg/cataloger/python/poetry_metadata_package.go rename to syft/cataloger/packages/python/poetry_metadata_package.go diff --git a/syft/pkg/cataloger/python/test-fixtures/Python-2.7.egg-info b/syft/cataloger/packages/python/test-fixtures/Python-2.7.egg-info similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/Python-2.7.egg-info rename to syft/cataloger/packages/python/test-fixtures/Python-2.7.egg-info diff --git a/syft/pkg/cataloger/python/test-fixtures/dist-info/METADATA b/syft/cataloger/packages/python/test-fixtures/dist-info/METADATA similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/dist-info/METADATA rename to syft/cataloger/packages/python/test-fixtures/dist-info/METADATA diff --git a/syft/pkg/cataloger/python/test-fixtures/dist-info/RECORD b/syft/cataloger/packages/python/test-fixtures/dist-info/RECORD similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/dist-info/RECORD rename to syft/cataloger/packages/python/test-fixtures/dist-info/RECORD diff --git a/syft/pkg/cataloger/python/test-fixtures/dist-info/direct_url.json b/syft/cataloger/packages/python/test-fixtures/dist-info/direct_url.json similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/dist-info/direct_url.json rename to syft/cataloger/packages/python/test-fixtures/dist-info/direct_url.json diff --git a/syft/pkg/cataloger/python/test-fixtures/dist-info/top_level.txt b/syft/cataloger/packages/python/test-fixtures/dist-info/top_level.txt similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/dist-info/top_level.txt rename to syft/cataloger/packages/python/test-fixtures/dist-info/top_level.txt diff --git a/syft/pkg/cataloger/python/test-fixtures/egg-info/PKG-INFO b/syft/cataloger/packages/python/test-fixtures/egg-info/PKG-INFO similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/egg-info/PKG-INFO rename to syft/cataloger/packages/python/test-fixtures/egg-info/PKG-INFO diff --git a/syft/pkg/cataloger/python/test-fixtures/egg-info/PKG-INFO-INVALID b/syft/cataloger/packages/python/test-fixtures/egg-info/PKG-INFO-INVALID similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/egg-info/PKG-INFO-INVALID rename to syft/cataloger/packages/python/test-fixtures/egg-info/PKG-INFO-INVALID diff --git a/syft/pkg/cataloger/python/test-fixtures/egg-info/RECORD b/syft/cataloger/packages/python/test-fixtures/egg-info/RECORD similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/egg-info/RECORD rename to syft/cataloger/packages/python/test-fixtures/egg-info/RECORD diff --git a/syft/pkg/cataloger/python/test-fixtures/egg-info/top_level.txt b/syft/cataloger/packages/python/test-fixtures/egg-info/top_level.txt similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/egg-info/top_level.txt rename to syft/cataloger/packages/python/test-fixtures/egg-info/top_level.txt diff --git a/syft/pkg/cataloger/python/test-fixtures/partial.dist-info/METADATA b/syft/cataloger/packages/python/test-fixtures/partial.dist-info/METADATA similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/partial.dist-info/METADATA rename to syft/cataloger/packages/python/test-fixtures/partial.dist-info/METADATA diff --git a/syft/pkg/cataloger/python/test-fixtures/pipfile-lock/Pipfile.lock b/syft/cataloger/packages/python/test-fixtures/pipfile-lock/Pipfile.lock similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/pipfile-lock/Pipfile.lock rename to syft/cataloger/packages/python/test-fixtures/pipfile-lock/Pipfile.lock diff --git a/syft/pkg/cataloger/python/test-fixtures/poetry/poetry.lock b/syft/cataloger/packages/python/test-fixtures/poetry/poetry.lock similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/poetry/poetry.lock rename to syft/cataloger/packages/python/test-fixtures/poetry/poetry.lock diff --git a/syft/pkg/cataloger/python/test-fixtures/requires/requirements.txt b/syft/cataloger/packages/python/test-fixtures/requires/requirements.txt similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/requires/requirements.txt rename to syft/cataloger/packages/python/test-fixtures/requires/requirements.txt diff --git a/syft/pkg/cataloger/python/test-fixtures/setup/setup.py b/syft/cataloger/packages/python/test-fixtures/setup/setup.py similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/setup/setup.py rename to syft/cataloger/packages/python/test-fixtures/setup/setup.py diff --git a/syft/pkg/cataloger/python/test-fixtures/test.egg-info b/syft/cataloger/packages/python/test-fixtures/test.egg-info similarity index 100% rename from syft/pkg/cataloger/python/test-fixtures/test.egg-info rename to syft/cataloger/packages/python/test-fixtures/test.egg-info diff --git a/syft/pkg/cataloger/rpmdb/cataloger.go b/syft/cataloger/packages/rpmdb/cataloger.go similarity index 100% rename from syft/pkg/cataloger/rpmdb/cataloger.go rename to syft/cataloger/packages/rpmdb/cataloger.go diff --git a/syft/pkg/cataloger/rpmdb/parse_rpmdb.go b/syft/cataloger/packages/rpmdb/parse_rpmdb.go similarity index 100% rename from syft/pkg/cataloger/rpmdb/parse_rpmdb.go rename to syft/cataloger/packages/rpmdb/parse_rpmdb.go diff --git a/syft/pkg/cataloger/rpmdb/parse_rpmdb_test.go b/syft/cataloger/packages/rpmdb/parse_rpmdb_test.go similarity index 100% rename from syft/pkg/cataloger/rpmdb/parse_rpmdb_test.go rename to syft/cataloger/packages/rpmdb/parse_rpmdb_test.go diff --git a/syft/pkg/cataloger/rpmdb/test-fixtures/Packages b/syft/cataloger/packages/rpmdb/test-fixtures/Packages similarity index 100% rename from syft/pkg/cataloger/rpmdb/test-fixtures/Packages rename to syft/cataloger/packages/rpmdb/test-fixtures/Packages diff --git a/syft/pkg/cataloger/rpmdb/test-fixtures/generate-fixture.sh b/syft/cataloger/packages/rpmdb/test-fixtures/generate-fixture.sh similarity index 100% rename from syft/pkg/cataloger/rpmdb/test-fixtures/generate-fixture.sh rename to syft/cataloger/packages/rpmdb/test-fixtures/generate-fixture.sh diff --git a/syft/pkg/cataloger/ruby/catalogers.go b/syft/cataloger/packages/ruby/catalogers.go similarity index 93% rename from syft/pkg/cataloger/ruby/catalogers.go rename to syft/cataloger/packages/ruby/catalogers.go index 0789137f7..dca40380d 100644 --- a/syft/pkg/cataloger/ruby/catalogers.go +++ b/syft/cataloger/packages/ruby/catalogers.go @@ -4,7 +4,7 @@ Package ruby bundler provides a concrete Cataloger implementation for Ruby Gemfi package ruby import ( - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" ) // NewGemFileLockCataloger returns a new Bundler cataloger object tailored for parsing index-oriented files (e.g. Gemfile.lock). diff --git a/syft/pkg/cataloger/ruby/parse_gemfile_lock.go b/syft/cataloger/packages/ruby/parse_gemfile_lock.go similarity index 96% rename from syft/pkg/cataloger/ruby/parse_gemfile_lock.go rename to syft/cataloger/packages/ruby/parse_gemfile_lock.go index bf351739c..b3dafb770 100644 --- a/syft/pkg/cataloger/ruby/parse_gemfile_lock.go +++ b/syft/cataloger/packages/ruby/parse_gemfile_lock.go @@ -5,7 +5,7 @@ import ( "io" "strings" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/internal" "github.com/anchore/syft/syft/artifact" diff --git a/syft/pkg/cataloger/ruby/parse_gemfile_lock_test.go b/syft/cataloger/packages/ruby/parse_gemfile_lock_test.go similarity index 100% rename from syft/pkg/cataloger/ruby/parse_gemfile_lock_test.go rename to syft/cataloger/packages/ruby/parse_gemfile_lock_test.go diff --git a/syft/pkg/cataloger/ruby/parse_gemspec.go b/syft/cataloger/packages/ruby/parse_gemspec.go similarity index 98% rename from syft/pkg/cataloger/ruby/parse_gemspec.go rename to syft/cataloger/packages/ruby/parse_gemspec.go index 3e7680139..011403005 100644 --- a/syft/pkg/cataloger/ruby/parse_gemspec.go +++ b/syft/cataloger/packages/ruby/parse_gemspec.go @@ -8,7 +8,7 @@ import ( "regexp" "strings" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/internal" diff --git a/syft/pkg/cataloger/ruby/parse_gemspec_test.go b/syft/cataloger/packages/ruby/parse_gemspec_test.go similarity index 100% rename from syft/pkg/cataloger/ruby/parse_gemspec_test.go rename to syft/cataloger/packages/ruby/parse_gemspec_test.go diff --git a/syft/pkg/cataloger/ruby/test-fixtures/Gemfile.lock b/syft/cataloger/packages/ruby/test-fixtures/Gemfile.lock similarity index 100% rename from syft/pkg/cataloger/ruby/test-fixtures/Gemfile.lock rename to syft/cataloger/packages/ruby/test-fixtures/Gemfile.lock diff --git a/syft/pkg/cataloger/ruby/test-fixtures/bundler.gemspec b/syft/cataloger/packages/ruby/test-fixtures/bundler.gemspec similarity index 100% rename from syft/pkg/cataloger/ruby/test-fixtures/bundler.gemspec rename to syft/cataloger/packages/ruby/test-fixtures/bundler.gemspec diff --git a/syft/pkg/cataloger/rust/cataloger.go b/syft/cataloger/packages/rust/cataloger.go similarity index 86% rename from syft/pkg/cataloger/rust/cataloger.go rename to syft/cataloger/packages/rust/cataloger.go index 93388ac58..59f63799b 100644 --- a/syft/pkg/cataloger/rust/cataloger.go +++ b/syft/cataloger/packages/rust/cataloger.go @@ -4,7 +4,7 @@ Package rust provides a concrete Cataloger implementation for Cargo.lock files. package rust import ( - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" ) // NewCargoLockCataloger returns a new Rust Cargo lock file cataloger object. diff --git a/syft/pkg/cataloger/rust/parse_cargo_lock.go b/syft/cataloger/packages/rust/parse_cargo_lock.go similarity index 92% rename from syft/pkg/cataloger/rust/parse_cargo_lock.go rename to syft/cataloger/packages/rust/parse_cargo_lock.go index ac6f286be..dba27ba70 100644 --- a/syft/pkg/cataloger/rust/parse_cargo_lock.go +++ b/syft/cataloger/packages/rust/parse_cargo_lock.go @@ -4,7 +4,7 @@ import ( "fmt" "io" - "github.com/anchore/syft/syft/pkg/cataloger/generic" + "github.com/anchore/syft/syft/cataloger/packages/generic" "github.com/anchore/syft/syft/artifact" "github.com/anchore/syft/syft/pkg" diff --git a/syft/pkg/cataloger/rust/parse_cargo_lock_test.go b/syft/cataloger/packages/rust/parse_cargo_lock_test.go similarity index 100% rename from syft/pkg/cataloger/rust/parse_cargo_lock_test.go rename to syft/cataloger/packages/rust/parse_cargo_lock_test.go diff --git a/syft/pkg/cataloger/rust/test-fixtures/Cargo.lock b/syft/cataloger/packages/rust/test-fixtures/Cargo.lock similarity index 100% rename from syft/pkg/cataloger/rust/test-fixtures/Cargo.lock rename to syft/cataloger/packages/rust/test-fixtures/Cargo.lock diff --git a/syft/pkg/cataloger/packages/search_config.go b/syft/cataloger/packages/search_config.go similarity index 89% rename from syft/pkg/cataloger/packages/search_config.go rename to syft/cataloger/packages/search_config.go index 23c951e5c..8fba9deb5 100644 --- a/syft/pkg/cataloger/packages/search_config.go +++ b/syft/cataloger/packages/search_config.go @@ -1,7 +1,7 @@ package packages import ( - "github.com/anchore/syft/syft/pkg/cataloger/java" + "github.com/anchore/syft/syft/cataloger/packages/java" ) type SearchConfig struct { diff --git a/syft/cataloging_config.go b/syft/cataloging_config.go index 041008d35..e8361187c 100644 --- a/syft/cataloging_config.go +++ b/syft/cataloging_config.go @@ -2,10 +2,9 @@ package syft import ( "crypto" - - "github.com/anchore/syft/syft/file/cataloger/fileclassifier" - "github.com/anchore/syft/syft/file/cataloger/filecontents" - "github.com/anchore/syft/syft/file/cataloger/secrets" + "github.com/anchore/syft/syft/cataloger/files/fileclassifier" + "github.com/anchore/syft/syft/cataloger/files/filecontents" + "github.com/anchore/syft/syft/cataloger/files/secrets" "github.com/anchore/syft/internal" "github.com/anchore/syft/internal/version" diff --git a/syft/cataloging_option.go b/syft/cataloging_option.go index 61beaff38..2ec6c829b 100644 --- a/syft/cataloging_option.go +++ b/syft/cataloging_option.go @@ -2,11 +2,10 @@ package syft import ( "crypto" - - "github.com/anchore/syft/syft/file/cataloger/fileclassifier" - "github.com/anchore/syft/syft/file/cataloger/secrets" + "github.com/anchore/syft/syft/cataloger/files/fileclassifier" + "github.com/anchore/syft/syft/cataloger/files/secrets" + "github.com/anchore/syft/syft/cataloger/packages" "github.com/anchore/syft/syft/pkg" - "github.com/anchore/syft/syft/pkg/cataloger/packages" "github.com/anchore/syft/syft/source" ) diff --git a/syft/pkg/cpe.go b/syft/cpe/cpe.go similarity index 94% rename from syft/pkg/cpe.go rename to syft/cpe/cpe.go index 85290e50e..86be6c20b 100644 --- a/syft/pkg/cpe.go +++ b/syft/cpe/cpe.go @@ -1,4 +1,4 @@ -package pkg +package cpe import ( "fmt" @@ -24,9 +24,9 @@ const cpeRegexString = ((`^([c][pP][eE]:/[AHOaho]?(:[A-Za-z0-9\._\-~%]*){0,6})`) var cpeRegex = regexp.MustCompile(cpeRegexString) -// NewCPE will parse a formatted CPE string and return a CPE object. Some input, such as the existence of whitespace +// New will parse a formatted CPE string and return a CPE object. Some input, such as the existence of whitespace // characters is allowed, however, a more strict validation is done after this sanitization process. -func NewCPE(cpeStr string) (CPE, error) { +func New(cpeStr string) (CPE, error) { // get a CPE object based on the given string --don't validate yet since it may be possible to escape select cases on the callers behalf c, err := newCPEWithoutValidation(cpeStr) if err != nil { @@ -34,7 +34,7 @@ func NewCPE(cpeStr string) (CPE, error) { } // ensure that this CPE can be validated after being fully sanitized - if ValidateCPEString(CPEString(c)) != nil { + if ValidateCPEString(String(c)) != nil { return CPE{}, err } @@ -78,8 +78,8 @@ func newCPEWithoutValidation(cpeStr string) (CPE, error) { return *value, nil } -func MustCPE(cpeStr string) CPE { - c, err := NewCPE(cpeStr) +func Must(cpeStr string) CPE { + c, err := New(cpeStr) if err != nil { panic(err) } @@ -112,7 +112,7 @@ func stripSlashes(s string) string { return sb.String() } -func CPEString(c CPE) string { +func String(c CPE) string { output := CPE{} output.Vendor = sanitize(c.Vendor) output.Product = sanitize(c.Product) diff --git a/syft/pkg/cpe_test.go b/syft/cpe/cpe_test.go similarity index 84% rename from syft/pkg/cpe_test.go rename to syft/cpe/cpe_test.go index 1f610541c..5ac9408da 100644 --- a/syft/pkg/cpe_test.go +++ b/syft/cpe/cpe_test.go @@ -1,4 +1,4 @@ -package pkg +package cpe import ( "encoding/json" @@ -27,29 +27,29 @@ func TestNewCPE(t *testing.T) { { name: "gocase", input: `cpe:/a:10web:form_maker:1.0.0::~~~wordpress~~`, - expected: must(NewCPE(`cpe:2.3:a:10web:form_maker:1.0.0:*:*:*:*:wordpress:*:*`)), + expected: must(New(`cpe:2.3:a:10web:form_maker:1.0.0:*:*:*:*:wordpress:*:*`)), }, { name: "dashes", input: `cpe:/a:7-zip:7-zip:4.56:beta:~~~windows~~`, - expected: must(NewCPE(`cpe:2.3:a:7-zip:7-zip:4.56:beta:*:*:*:windows:*:*`)), + expected: must(New(`cpe:2.3:a:7-zip:7-zip:4.56:beta:*:*:*:windows:*:*`)), }, { name: "URL escape characters", input: `cpe:/a:%240.99_kindle_books_project:%240.99_kindle_books:6::~~~android~~`, - expected: must(NewCPE(`cpe:2.3:a:\$0.99_kindle_books_project:\$0.99_kindle_books:6:*:*:*:*:android:*:*`)), + expected: must(New(`cpe:2.3:a:\$0.99_kindle_books_project:\$0.99_kindle_books:6:*:*:*:*:android:*:*`)), }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - actual, err := NewCPE(test.input) + actual, err := New(test.input) if err != nil { t.Fatalf("got an error while creating CPE: %+v", err) } - if CPEString(actual) != CPEString(test.expected) { - t.Errorf("mismatched entries:\n\texpected:%+v\n\t actual:%+v\n", CPEString(test.expected), CPEString(actual)) + if String(actual) != String(test.expected) { + t.Errorf("mismatched entries:\n\texpected:%+v\n\t actual:%+v\n", String(test.expected), String(actual)) } }) @@ -98,14 +98,14 @@ func Test_CPEParser(t *testing.T) { for _, test := range testCases { t.Run(test.CPEString, func(t *testing.T) { - c1, err := NewCPE(test.CPEString) + c1, err := New(test.CPEString) assert.NoError(t, err) - c2, err := NewCPE(test.CPEUrl) + c2, err := New(test.CPEUrl) assert.NoError(t, err) assert.Equal(t, c1, c2) assert.Equal(t, c1, test.WFN) assert.Equal(t, c2, test.WFN) - assert.Equal(t, CPEString(test.WFN), test.CPEString) + assert.Equal(t, String(test.WFN), test.CPEString) }) } } @@ -167,16 +167,16 @@ func Test_InvalidCPE(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - c, err := NewCPE(test.in) + c, err := New(test.in) if test.expectedErr { assert.Error(t, err) if t.Failed() { - t.Logf("got CPE: %q details: %+v", CPEString(c), c) + t.Logf("got CPE: %q details: %+v", String(c), c) } return } require.NoError(t, err) - assert.Equal(t, test.expected, CPEString(c)) + assert.Equal(t, test.expected, String(c)) }) } } @@ -222,13 +222,13 @@ func Test_RoundTrip(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { // CPE string must be preserved through a round trip - assert.Equal(t, test.cpe, CPEString(MustCPE(test.cpe))) + assert.Equal(t, test.cpe, String(Must(test.cpe))) // The parsed CPE must be the same after a round trip - assert.Equal(t, MustCPE(test.cpe), MustCPE(CPEString(MustCPE(test.cpe)))) + assert.Equal(t, Must(test.cpe), Must(String(Must(test.cpe)))) // The test case parsed CPE must be the same after parsing the input string - assert.Equal(t, test.parsedCPE, MustCPE(test.cpe)) + assert.Equal(t, test.parsedCPE, Must(test.cpe)) // The test case parsed CPE must produce the same string as the input cpe - assert.Equal(t, CPEString(test.parsedCPE), test.cpe) + assert.Equal(t, String(test.parsedCPE), test.cpe) }) } } diff --git a/syft/cpe/sort_by_specificity.go b/syft/cpe/sort_by_specificity.go index f68050982..ad1a9adb8 100644 --- a/syft/cpe/sort_by_specificity.go +++ b/syft/cpe/sort_by_specificity.go @@ -29,7 +29,7 @@ func (c BySpecificity) Less(i, j int) bool { } // if score and length are equal then text sort - // note that we are not using CPEString from the syft pkg + // note that we are not using String from the syft pkg // as we are not encoding/decoding this CPE string so we don't // need the proper quoted version of the CPE. return c[i].BindToFmtString() < c[j].BindToFmtString() diff --git a/syft/cpe/sort_by_specificity_test.go b/syft/cpe/sort_by_specificity_test.go index f979bd8fb..61631154e 100644 --- a/syft/cpe/sort_by_specificity_test.go +++ b/syft/cpe/sort_by_specificity_test.go @@ -4,99 +4,87 @@ import ( "sort" "testing" - "github.com/anchore/syft/syft/pkg" "github.com/stretchr/testify/assert" ) -func mustCPE(c string) pkg.CPE { - return must(pkg.NewCPE(c)) -} - -func must(c pkg.CPE, e error) pkg.CPE { - if e != nil { - panic(e) - } - return c -} - func TestCPESpecificity(t *testing.T) { tests := []struct { name string - input []pkg.CPE - expected []pkg.CPE + input []CPE + expected []CPE }{ { name: "sort strictly by wfn *", - input: []pkg.CPE{ - mustCPE("cpe:2.3:a:*:package:1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:some:package:1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:*:package:1:*:*:*:*:some:*:*"), - mustCPE("cpe:2.3:a:some:package:1:*:*:*:*:some:*:*"), - mustCPE("cpe:2.3:a:some:package:*:*:*:*:*:*:*:*"), + input: []CPE{ + Must("cpe:2.3:a:*:package:1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:some:package:1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:*:package:1:*:*:*:*:some:*:*"), + Must("cpe:2.3:a:some:package:1:*:*:*:*:some:*:*"), + Must("cpe:2.3:a:some:package:*:*:*:*:*:*:*:*"), }, - expected: []pkg.CPE{ - mustCPE("cpe:2.3:a:some:package:1:*:*:*:*:some:*:*"), - mustCPE("cpe:2.3:a:some:package:1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:some:package:*:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:*:package:1:*:*:*:*:some:*:*"), - mustCPE("cpe:2.3:a:*:package:1:*:*:*:*:*:*:*"), + expected: []CPE{ + Must("cpe:2.3:a:some:package:1:*:*:*:*:some:*:*"), + Must("cpe:2.3:a:some:package:1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:some:package:*:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:*:package:1:*:*:*:*:some:*:*"), + Must("cpe:2.3:a:*:package:1:*:*:*:*:*:*:*"), }, }, { name: "sort strictly by field length", - input: []pkg.CPE{ - mustCPE("cpe:2.3:a:1:22:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:55555:1:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:1:333:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:666666:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:1:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:1:1:*:*:*:*:4444:*:*"), + input: []CPE{ + Must("cpe:2.3:a:1:22:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:55555:1:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:1:333:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:666666:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:1:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:1:1:*:*:*:*:4444:*:*"), }, - expected: []pkg.CPE{ - mustCPE("cpe:2.3:a:1:666666:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:55555:1:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:1:1:*:*:*:*:4444:*:*"), - mustCPE("cpe:2.3:a:1:1:333:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:22:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:1:1:*:*:*:*:1:*:*"), + expected: []CPE{ + Must("cpe:2.3:a:1:666666:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:55555:1:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:1:1:*:*:*:*:4444:*:*"), + Must("cpe:2.3:a:1:1:333:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:22:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:1:1:*:*:*:*:1:*:*"), }, }, { name: "sort by mix of field length and specificity", - input: []pkg.CPE{ - mustCPE("cpe:2.3:a:1:666666:*:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:*:1:1:*:*:*:*:4444:*:*"), - mustCPE("cpe:2.3:a:1:*:333:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:1:1:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:22:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:55555:1:1:*:*:*:*:1:*:*"), + input: []CPE{ + Must("cpe:2.3:a:1:666666:*:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:*:1:1:*:*:*:*:4444:*:*"), + Must("cpe:2.3:a:1:*:333:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:1:1:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:22:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:55555:1:1:*:*:*:*:1:*:*"), }, - expected: []pkg.CPE{ - mustCPE("cpe:2.3:a:55555:1:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:22:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:1:1:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:1:666666:*:*:*:*:*:1:*:*"), - mustCPE("cpe:2.3:a:*:1:1:*:*:*:*:4444:*:*"), - mustCPE("cpe:2.3:a:1:*:333:*:*:*:*:*:*:*"), + expected: []CPE{ + Must("cpe:2.3:a:55555:1:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:22:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:1:1:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:1:666666:*:*:*:*:*:1:*:*"), + Must("cpe:2.3:a:*:1:1:*:*:*:*:4444:*:*"), + Must("cpe:2.3:a:1:*:333:*:*:*:*:*:*:*"), }, }, { name: "sort by mix of field length, specificity, dash", - input: []pkg.CPE{ - mustCPE("cpe:2.3:a:alpine:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine_keys:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine-keys:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine-keys:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine_keys:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), + input: []CPE{ + Must("cpe:2.3:a:alpine:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine_keys:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine-keys:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine-keys:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine_keys:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), }, - expected: []pkg.CPE{ - mustCPE("cpe:2.3:a:alpine-keys:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine-keys:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine_keys:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine_keys:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), - mustCPE("cpe:2.3:a:alpine:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), + expected: []CPE{ + Must("cpe:2.3:a:alpine-keys:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine-keys:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine_keys:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine_keys:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine:alpine-keys:2.3-r1:*:*:*:*:*:*:*"), + Must("cpe:2.3:a:alpine:alpine_keys:2.3-r1:*:*:*:*:*:*:*"), }, }, } diff --git a/syft/pkg/catalog.go b/syft/pkg/collection.go similarity index 84% rename from syft/pkg/catalog.go rename to syft/pkg/collection.go index b51714176..cb45e09b5 100644 --- a/syft/pkg/catalog.go +++ b/syft/pkg/collection.go @@ -10,17 +10,17 @@ import ( "github.com/jinzhu/copier" ) -// Catalog represents a collection of Packages. -type Catalog struct { +// Collection represents a collection of Packages. +type Collection struct { byID map[artifact.ID]Package idsByType map[Type][]artifact.ID idsByPath map[string][]artifact.ID // note: this is real path or virtual path lock sync.RWMutex } -// NewCatalog returns a new empty Catalog -func NewCatalog(pkgs ...Package) *Catalog { - catalog := Catalog{ +// NewCollection returns a new empty Collection +func NewCollection(pkgs ...Package) *Collection { + catalog := Collection{ byID: make(map[artifact.ID]Package), idsByType: make(map[Type][]artifact.ID), idsByPath: make(map[string][]artifact.ID), @@ -34,12 +34,12 @@ func NewCatalog(pkgs ...Package) *Catalog { } // PackageCount returns the total number of packages that have been added. -func (c *Catalog) PackageCount() int { +func (c *Collection) PackageCount() int { return len(c.byID) } // Package returns the package with the given ID. -func (c *Catalog) Package(id artifact.ID) *Package { +func (c *Collection) Package(id artifact.ID) *Package { v, exists := c.byID[id] if !exists { return nil @@ -54,12 +54,12 @@ func (c *Catalog) Package(id artifact.ID) *Package { } // PackagesByPath returns all packages that were discovered from the given path. -func (c *Catalog) PackagesByPath(path string) []Package { +func (c *Collection) PackagesByPath(path string) []Package { return c.Packages(c.idsByPath[path]) } // Packages returns all packages for the given ID. -func (c *Catalog) Packages(ids []artifact.ID) (result []Package) { +func (c *Collection) Packages(ids []artifact.ID) (result []Package) { for _, i := range ids { p, exists := c.byID[i] if exists { @@ -69,8 +69,8 @@ func (c *Catalog) Packages(ids []artifact.ID) (result []Package) { return result } -// Add a package to the Catalog. -func (c *Catalog) Add(p Package) { +// Add a package to the Collection. +func (c *Collection) Add(p Package) { c.lock.Lock() defer c.lock.Unlock() @@ -102,7 +102,7 @@ func (c *Catalog) Add(p Package) { } // Enumerate all packages for the given type(s), enumerating all packages if no type is specified. -func (c *Catalog) Enumerate(types ...Type) <-chan Package { +func (c *Collection) Enumerate(types ...Type) <-chan Package { channel := make(chan Package) go func() { defer close(channel) @@ -137,7 +137,7 @@ func (c *Catalog) Enumerate(types ...Type) <-chan Package { // Sorted enumerates all packages for the given types sorted by package name. Enumerates all packages if no type // is specified. -func (c *Catalog) Sorted(types ...Type) (pkgs []Package) { +func (c *Collection) Sorted(types ...Type) (pkgs []Package) { for p := range c.Enumerate(types...) { pkgs = append(pkgs, p) } diff --git a/syft/pkg/catalog_test.go b/syft/pkg/collection_test.go similarity index 94% rename from syft/pkg/catalog_test.go rename to syft/pkg/collection_test.go index 366f896f5..27d00d466 100644 --- a/syft/pkg/catalog_test.go +++ b/syft/pkg/collection_test.go @@ -67,7 +67,7 @@ func TestCatalogAddPopulatesIndex(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - c := NewCatalog(pkgs...) + c := NewCollection(pkgs...) assertIndexes(t, c, test.expectedIndexes) @@ -75,7 +75,7 @@ func TestCatalogAddPopulatesIndex(t *testing.T) { } } -func assertIndexes(t *testing.T, c *Catalog, expectedIndexes expectedIndexes) { +func assertIndexes(t *testing.T, c *Collection, expectedIndexes expectedIndexes) { // assert path index assert.Len(t, c.idsByPath, len(expectedIndexes.byPath), "unexpected path index length") for path, expectedIds := range expectedIndexes.byPath { @@ -136,7 +136,7 @@ func TestCatalog_PathIndexDeduplicatesRealVsVirtualPaths(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - actual := NewCatalog(test.pkg).PackagesByPath("/b/path") + actual := NewCollection(test.pkg).PackagesByPath("/b/path") if len(actual) != 1 { t.Errorf("expected exactly one package path, got %d", len(actual)) } @@ -146,6 +146,6 @@ func TestCatalog_PathIndexDeduplicatesRealVsVirtualPaths(t *testing.T) { } func TestCatalog_EnumerateNilCatalog(t *testing.T) { - var c *Catalog + var c *Collection assert.Empty(t, c.Enumerate()) } diff --git a/syft/pkg/package.go b/syft/pkg/package.go index efd353021..755ad9d83 100644 --- a/syft/pkg/package.go +++ b/syft/pkg/package.go @@ -5,6 +5,7 @@ package pkg import ( "fmt" + "github.com/anchore/syft/syft/cpe" "github.com/anchore/syft/syft/file" @@ -23,7 +24,7 @@ type Package struct { Licenses []string // licenses discovered with the package metadata Language Language `cyclonedx:"language"` // the language ecosystem this package belongs to (e.g. JavaScript, Python, etc) Type Type `cyclonedx:"type"` // the package type (e.g. Npm, Yarn, Python, Rpm, Deb, etc) - CPEs []CPE `hash:"ignore"` // all possible Common Platform Enumerators (note: this is NOT included in the definition of the ID since all fields on a CPE are derived from other fields) + CPEs []cpe.CPE `hash:"ignore"` // all possible Common Platform Enumerators (note: this is NOT included in the definition of the ID since all fields on a CPE are derived from other fields) PURL string `hash:"ignore"` // the Package URL (see https://github.com/package-url/purl-spec) (note: this is NOT included in the definition of the ID since all fields on a pURL are derived from other fields) MetadataType MetadataType `cyclonedx:"metadataType"` // the shape of the additional data in the "metadata" field Metadata interface{} // additional data found while parsing the package source diff --git a/syft/pkg/package_test.go b/syft/pkg/package_test.go index 714e08459..849fa04bc 100644 --- a/syft/pkg/package_test.go +++ b/syft/pkg/package_test.go @@ -1,6 +1,7 @@ package pkg import ( + "github.com/anchore/syft/syft/cpe" "github.com/anchore/syft/syft/file" "testing" @@ -27,8 +28,8 @@ func TestFingerprint(t *testing.T) { }, Language: "math", Type: PythonPkg, - CPEs: []CPE{ - must(NewCPE(`cpe:2.3:a:Archimedes:pi:3.14:*:*:*:*:math:*:*`)), + CPEs: []cpe.CPE{ + cpe.Must(`cpe:2.3:a:Archimedes:pi:3.14:*:*:*:*:math:*:*`), }, PURL: "pkg:pypi/pi@3.14", MetadataType: PythonPackageMetadataType, @@ -129,7 +130,7 @@ func TestFingerprint(t *testing.T) { { name: "CPEs is ignored", transform: func(pkg Package) Package { - pkg.CPEs = []CPE{} + pkg.CPEs = []cpe.CPE{} return pkg }, expectIdentical: true, diff --git a/syft/pkg/relationships.go b/syft/pkg/relationships.go index fe73c1b0f..be59b2add 100644 --- a/syft/pkg/relationships.go +++ b/syft/pkg/relationships.go @@ -3,6 +3,6 @@ package pkg import "github.com/anchore/syft/syft/artifact" // TODO: as more relationships are added, this function signature will probably accommodate selection -func NewRelationships(catalog *Catalog) []artifact.Relationship { +func NewRelationships(catalog *Collection) []artifact.Relationship { return RelationshipsByFileOwnership(catalog) } diff --git a/syft/pkg/relationships_by_file_ownership.go b/syft/pkg/relationships_by_file_ownership.go index 691dbbacb..019b17cf5 100644 --- a/syft/pkg/relationships_by_file_ownership.go +++ b/syft/pkg/relationships_by_file_ownership.go @@ -23,7 +23,7 @@ type ownershipByFilesMetadata struct { // RelationshipsByFileOwnership creates a package-to-package relationship based on discovering which packages have // evidence locations that overlap with ownership claim from another package's package manager metadata. -func RelationshipsByFileOwnership(catalog *Catalog) []artifact.Relationship { +func RelationshipsByFileOwnership(catalog *Collection) []artifact.Relationship { var relationships = findOwnershipByFilesRelationships(catalog) var edges []artifact.Relationship @@ -45,7 +45,7 @@ func RelationshipsByFileOwnership(catalog *Catalog) []artifact.Relationship { // findOwnershipByFilesRelationships find overlaps in file ownership with a file that defines another package. Specifically, a .Location.Path of // a package is found to be owned by another (from the owner's .Metadata.Files[]). -func findOwnershipByFilesRelationships(catalog *Catalog) map[artifact.ID]map[artifact.ID]*strset.Set { +func findOwnershipByFilesRelationships(catalog *Collection) map[artifact.ID]map[artifact.ID]*strset.Set { var relationships = make(map[artifact.ID]map[artifact.ID]*strset.Set) if catalog == nil { diff --git a/syft/pkg/relationships_by_file_ownership_test.go b/syft/pkg/relationships_by_file_ownership_test.go index c2aacf3b1..11cfdf618 100644 --- a/syft/pkg/relationships_by_file_ownership_test.go +++ b/syft/pkg/relationships_by_file_ownership_test.go @@ -138,7 +138,7 @@ func TestOwnershipByFilesRelationship(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { pkgs, expectedRelations := test.setup(t) - c := NewCatalog(pkgs...) + c := NewCollection(pkgs...) relationships := RelationshipsByFileOwnership(c) assert.Len(t, relationships, len(expectedRelations)) diff --git a/syft/pkg/url.go b/syft/pkg/url.go index 7bce37855..255b9b0c3 100644 --- a/syft/pkg/url.go +++ b/syft/pkg/url.go @@ -15,7 +15,6 @@ const ( PURLQualifierDistro = "distro" PURLQualifierEpoch = "epoch" PURLQualifierVCSURL = "vcs_url" - // PURLQualifierUpstream this qualifier is not in the pURL spec, but is used by grype to perform indirect matching based on source information PURLQualifierUpstream = "upstream" diff --git a/syft/sbom/sbom.go b/syft/sbom/sbom.go index 07e40c0c0..2ad48ad72 100644 --- a/syft/sbom/sbom.go +++ b/syft/sbom/sbom.go @@ -16,7 +16,7 @@ type SBOM struct { } type Artifacts struct { - PackageCatalog *pkg.Catalog + PackageCatalog *pkg.Collection FileMetadata map[file.Coordinates]file.Metadata FileDigests map[file.Coordinates][]file.Digest FileClassifications map[file.Coordinates][]file.Classification diff --git a/syft/cpe/candidate_by_package_type.go b/syft/speculate/cpes/candidate_by_package_type.go similarity index 99% rename from syft/cpe/candidate_by_package_type.go rename to syft/speculate/cpes/candidate_by_package_type.go index 06fdc2916..3ca90540d 100644 --- a/syft/cpe/candidate_by_package_type.go +++ b/syft/speculate/cpes/candidate_by_package_type.go @@ -1,4 +1,4 @@ -package cpe +package cpes import ( "github.com/anchore/syft/syft/pkg" diff --git a/syft/cpe/candidate_by_package_type_test.go b/syft/speculate/cpes/candidate_by_package_type_test.go similarity index 99% rename from syft/cpe/candidate_by_package_type_test.go rename to syft/speculate/cpes/candidate_by_package_type_test.go index 497d298a6..d441a4405 100644 --- a/syft/cpe/candidate_by_package_type_test.go +++ b/syft/speculate/cpes/candidate_by_package_type_test.go @@ -1,4 +1,4 @@ -package cpe +package cpes import ( "testing" diff --git a/syft/cpe/field_candidate.go b/syft/speculate/cpes/field_candidate.go similarity index 99% rename from syft/cpe/field_candidate.go rename to syft/speculate/cpes/field_candidate.go index c7abbb1e5..df03e008a 100644 --- a/syft/cpe/field_candidate.go +++ b/syft/speculate/cpes/field_candidate.go @@ -1,4 +1,4 @@ -package cpe +package cpes import ( "strconv" diff --git a/syft/cpe/field_candidate_filter.go b/syft/speculate/cpes/field_candidate_filter.go similarity index 97% rename from syft/cpe/field_candidate_filter.go rename to syft/speculate/cpes/field_candidate_filter.go index 203d0e7fc..1aae28f9d 100644 --- a/syft/cpe/field_candidate_filter.go +++ b/syft/speculate/cpes/field_candidate_filter.go @@ -1,4 +1,4 @@ -package cpe +package cpes // A fieldCandidateCondition returns true if the condition is true for a given fieldCandidate. type fieldCandidateCondition func(fieldCandidate) bool diff --git a/syft/cpe/field_candidate_test.go b/syft/speculate/cpes/field_candidate_test.go similarity index 99% rename from syft/cpe/field_candidate_test.go rename to syft/speculate/cpes/field_candidate_test.go index f4f70d22d..260faa76b 100644 --- a/syft/cpe/field_candidate_test.go +++ b/syft/speculate/cpes/field_candidate_test.go @@ -1,4 +1,4 @@ -package cpe +package cpes import ( "strings" diff --git a/syft/cpe/filter.go b/syft/speculate/cpes/filter.go similarity index 77% rename from syft/cpe/filter.go rename to syft/speculate/cpes/filter.go index cfb696c7d..9c740199d 100644 --- a/syft/cpe/filter.go +++ b/syft/speculate/cpes/filter.go @@ -1,6 +1,7 @@ -package cpe +package cpes import ( + "github.com/anchore/syft/syft/cpe" "strings" "github.com/anchore/syft/syft/pkg" @@ -10,7 +11,7 @@ import ( const jenkinsName = "jenkins" // filterFn instances should return true if the given CPE should be removed from a collection for the given package -type filterFn func(cpe pkg.CPE, p pkg.Package) bool +type filterFn func(cpe cpe.CPE, p pkg.Package) bool var cpeFilters = []filterFn{ disallowJiraClientServerMismatch, @@ -19,7 +20,7 @@ var cpeFilters = []filterFn{ disallowNonParseableCPEs, } -func filter(cpes []pkg.CPE, p pkg.Package, filters ...filterFn) (result []pkg.CPE) { +func filter(cpes []cpe.CPE, p pkg.Package, filters ...filterFn) (result []cpe.CPE) { cpeLoop: for _, cpe := range cpes { for _, fn := range filters { @@ -33,9 +34,9 @@ cpeLoop: return result } -func disallowNonParseableCPEs(cpe pkg.CPE, _ pkg.Package) bool { - v := pkg.CPEString(cpe) - _, err := pkg.NewCPE(v) +func disallowNonParseableCPEs(c cpe.CPE, _ pkg.Package) bool { + v := cpe.String(c) + _, err := cpe.New(v) cannotParse := err != nil @@ -43,7 +44,7 @@ func disallowNonParseableCPEs(cpe pkg.CPE, _ pkg.Package) bool { } // jenkins plugins should not match against jenkins -func disallowJenkinsServerCPEForPluginPackage(cpe pkg.CPE, p pkg.Package) bool { +func disallowJenkinsServerCPEForPluginPackage(cpe cpe.CPE, p pkg.Package) bool { if p.Type == pkg.JenkinsPluginPkg && cpe.Product == jenkinsName { return true } @@ -51,7 +52,7 @@ func disallowJenkinsServerCPEForPluginPackage(cpe pkg.CPE, p pkg.Package) bool { } // filter to account that packages that are not for jenkins but have a CPE generated that will match against jenkins -func disallowJenkinsCPEsNotAssociatedWithJenkins(cpe pkg.CPE, p pkg.Package) bool { +func disallowJenkinsCPEsNotAssociatedWithJenkins(cpe cpe.CPE, p pkg.Package) bool { // jenkins server should only match against a product with the name jenkins if cpe.Product == jenkinsName && !strings.Contains(strings.ToLower(p.Name), jenkinsName) { if cpe.Vendor == wfn.Any || cpe.Vendor == jenkinsName || cpe.Vendor == "cloudbees" { @@ -62,7 +63,7 @@ func disallowJenkinsCPEsNotAssociatedWithJenkins(cpe pkg.CPE, p pkg.Package) boo } // filter to account for packages which are jira client packages but have a CPE that will match against jira -func disallowJiraClientServerMismatch(cpe pkg.CPE, p pkg.Package) bool { +func disallowJiraClientServerMismatch(cpe cpe.CPE, p pkg.Package) bool { // jira / atlassian should not apply to clients if cpe.Product == "jira" && strings.Contains(strings.ToLower(p.Name), "client") { if cpe.Vendor == wfn.Any || cpe.Vendor == "jira" || cpe.Vendor == "atlassian" { diff --git a/syft/cpe/filter_test.go b/syft/speculate/cpes/filter_test.go similarity index 76% rename from syft/cpe/filter_test.go rename to syft/speculate/cpes/filter_test.go index 6200093e0..7db15fd89 100644 --- a/syft/cpe/filter_test.go +++ b/syft/speculate/cpes/filter_test.go @@ -1,6 +1,7 @@ -package cpe +package cpes import ( + "github.com/anchore/syft/syft/cpe" "testing" "github.com/anchore/syft/syft/pkg" @@ -10,13 +11,13 @@ import ( func Test_disallowJenkinsServerCPEForPluginPackage(t *testing.T) { tests := []struct { name string - cpe pkg.CPE + cpe cpe.CPE pkg pkg.Package expected bool }{ { name: "go case (filter out)", - cpe: mustCPE("cpe:2.3:a:name:jenkins:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:name:jenkins:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Type: pkg.JenkinsPluginPkg, }, @@ -24,7 +25,7 @@ func Test_disallowJenkinsServerCPEForPluginPackage(t *testing.T) { }, { name: "ignore jenkins plugins with unique name", - cpe: mustCPE("cpe:2.3:a:name:ci-jenkins:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:name:ci-jenkins:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Type: pkg.JenkinsPluginPkg, }, @@ -32,7 +33,7 @@ func Test_disallowJenkinsServerCPEForPluginPackage(t *testing.T) { }, { name: "ignore java packages", - cpe: mustCPE("cpe:2.3:a:name:jenkins:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:name:jenkins:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Type: pkg.JavaPkg, }, @@ -49,13 +50,13 @@ func Test_disallowJenkinsServerCPEForPluginPackage(t *testing.T) { func Test_disallowJenkinsCPEsNotAssociatedWithJenkins(t *testing.T) { tests := []struct { name string - cpe pkg.CPE + cpe cpe.CPE pkg pkg.Package expected bool }{ { name: "filter out mismatched name (cloudbees vendor)", - cpe: mustCPE("cpe:2.3:a:cloudbees:jenkins:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:cloudbees:jenkins:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "not-j*nkins", Type: pkg.JavaPkg, @@ -64,7 +65,7 @@ func Test_disallowJenkinsCPEsNotAssociatedWithJenkins(t *testing.T) { }, { name: "filter out mismatched name (jenkins vendor)", - cpe: mustCPE("cpe:2.3:a:jenkins:jenkins:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:jenkins:jenkins:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "not-j*nkins", Type: pkg.JavaPkg, @@ -73,7 +74,7 @@ func Test_disallowJenkinsCPEsNotAssociatedWithJenkins(t *testing.T) { }, { name: "filter out mismatched name (any vendor)", - cpe: mustCPE("cpe:2.3:a:*:jenkins:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:*:jenkins:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "not-j*nkins", Type: pkg.JavaPkg, @@ -82,7 +83,7 @@ func Test_disallowJenkinsCPEsNotAssociatedWithJenkins(t *testing.T) { }, { name: "ignore packages with the name jenkins", - cpe: mustCPE("cpe:2.3:a:*:jenkins:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:*:jenkins:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "jenkins-thing", Type: pkg.JavaPkg, @@ -91,7 +92,7 @@ func Test_disallowJenkinsCPEsNotAssociatedWithJenkins(t *testing.T) { }, { name: "ignore product names that are not exactly 'jenkins'", - cpe: mustCPE("cpe:2.3:a:*:jenkins-something-else:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:*:jenkins-something-else:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "not-j*nkins", Type: pkg.JavaPkg, @@ -109,13 +110,13 @@ func Test_disallowJenkinsCPEsNotAssociatedWithJenkins(t *testing.T) { func Test_disallowJiraClientServerMismatch(t *testing.T) { tests := []struct { name string - cpe pkg.CPE + cpe cpe.CPE pkg pkg.Package expected bool }{ { name: "filter out mismatched name (atlassian vendor)", - cpe: mustCPE("cpe:2.3:a:atlassian:jira:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:atlassian:jira:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "something-client", Type: pkg.JavaPkg, @@ -124,7 +125,7 @@ func Test_disallowJiraClientServerMismatch(t *testing.T) { }, { name: "filter out mismatched name (jira vendor)", - cpe: mustCPE("cpe:2.3:a:jira:jira:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:jira:jira:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "something-client", Type: pkg.JavaPkg, @@ -133,7 +134,7 @@ func Test_disallowJiraClientServerMismatch(t *testing.T) { }, { name: "filter out mismatched name (any vendor)", - cpe: mustCPE("cpe:2.3:a:*:jira:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:*:jira:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "something-client", Type: pkg.JavaPkg, @@ -142,7 +143,7 @@ func Test_disallowJiraClientServerMismatch(t *testing.T) { }, { name: "ignore package names that do not have 'client'", - cpe: mustCPE("cpe:2.3:a:*:jira:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:*:jira:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "jira-thing", Type: pkg.JavaPkg, @@ -151,7 +152,7 @@ func Test_disallowJiraClientServerMismatch(t *testing.T) { }, { name: "ignore product names that are not exactly 'jira'", - cpe: mustCPE("cpe:2.3:a:*:jira-something-else:3.2:*:*:*:*:*:*:*"), + cpe: cpe.Must("cpe:2.3:a:*:jira-something-else:3.2:*:*:*:*:*:*:*"), pkg: pkg.Package{ Name: "not-j*ra", Type: pkg.JavaPkg, diff --git a/syft/cpe/generate.go b/syft/speculate/cpes/generate.go similarity index 95% rename from syft/cpe/generate.go rename to syft/speculate/cpes/generate.go index f8360555d..0955e87f2 100644 --- a/syft/cpe/generate.go +++ b/syft/speculate/cpes/generate.go @@ -1,9 +1,10 @@ -package cpe +package cpes import ( "bufio" "bytes" "fmt" + "github.com/anchore/syft/syft/cpe" "sort" "strings" @@ -13,22 +14,22 @@ import ( ) func newCPE(product, vendor, version, targetSW string) *wfn.Attributes { - cpe := *(wfn.NewAttributesWithAny()) - cpe.Part = "a" - cpe.Product = product - cpe.Vendor = vendor - cpe.Version = version - cpe.TargetSW = targetSW - if pkg.ValidateCPEString(pkg.CPEString(cpe)) != nil { + c := *(wfn.NewAttributesWithAny()) + c.Part = "a" + c.Product = product + c.Vendor = vendor + c.Version = version + c.TargetSW = targetSW + if cpe.ValidateCPEString(cpe.String(c)) != nil { return nil } - return &cpe + return &c } // Generate Create a list of CPEs for a given package, trying to guess the vendor, product tuple. We should be trying to // generate the minimal set of representative CPEs, which implies that optional fields should not be included // (such as target SW). -func Generate(p pkg.Package) []pkg.CPE { +func Generate(p pkg.Package) []cpe.CPE { vendors := candidateVendors(p) products := candidateProducts(p) if len(products) == 0 { @@ -36,7 +37,7 @@ func Generate(p pkg.Package) []pkg.CPE { } keys := internal.NewStringSet() - cpes := make([]pkg.CPE, 0) + cpes := make([]cpe.CPE, 0) for _, product := range products { for _, vendor := range vendors { // prevent duplicate entries... @@ -55,7 +56,7 @@ func Generate(p pkg.Package) []pkg.CPE { // filter out any known combinations that don't accurately represent this package cpes = filter(cpes, p, cpeFilters...) - sort.Sort(BySpecificity(cpes)) + sort.Sort(cpe.BySpecificity(cpes)) return cpes } diff --git a/syft/cpe/generate_test.go b/syft/speculate/cpes/generate_test.go similarity index 99% rename from syft/cpe/generate_test.go rename to syft/speculate/cpes/generate_test.go index b9bcd5186..5e4bc449d 100644 --- a/syft/cpe/generate_test.go +++ b/syft/speculate/cpes/generate_test.go @@ -1,7 +1,8 @@ -package cpe +package cpes import ( "fmt" + "github.com/anchore/syft/syft/cpe" "sort" "strings" "testing" @@ -661,7 +662,7 @@ func TestGeneratePackageCPEs(t *testing.T) { expectedCpeSet := set.NewStringSet(test.expected...) actualCpeSet := set.NewStringSet() for _, a := range actual { - actualCpeSet.Add(pkg.CPEString(a)) + actualCpeSet.Add(cpe.String(a)) } extra := strset.Difference(actualCpeSet, expectedCpeSet).List() diff --git a/syft/cpe/go.go b/syft/speculate/cpes/go.go similarity index 99% rename from syft/cpe/go.go rename to syft/speculate/cpes/go.go index 35a246e33..0b97cb589 100644 --- a/syft/cpe/go.go +++ b/syft/speculate/cpes/go.go @@ -1,4 +1,4 @@ -package cpe +package cpes import ( "net/url" diff --git a/syft/cpe/go_test.go b/syft/speculate/cpes/go_test.go similarity index 99% rename from syft/cpe/go_test.go rename to syft/speculate/cpes/go_test.go index 1c16c9398..a680307d9 100644 --- a/syft/cpe/go_test.go +++ b/syft/speculate/cpes/go_test.go @@ -1,4 +1,4 @@ -package cpe +package cpes import ( "testing" diff --git a/syft/cpe/java.go b/syft/speculate/cpes/java.go similarity index 99% rename from syft/cpe/java.go rename to syft/speculate/cpes/java.go index be86549e7..79d8b3b99 100644 --- a/syft/cpe/java.go +++ b/syft/speculate/cpes/java.go @@ -1,4 +1,4 @@ -package cpe +package cpes import ( "strings" diff --git a/syft/cpe/java_test.go b/syft/speculate/cpes/java_test.go similarity index 99% rename from syft/cpe/java_test.go rename to syft/speculate/cpes/java_test.go index 0f87e5b56..fd1252086 100644 --- a/syft/cpe/java_test.go +++ b/syft/speculate/cpes/java_test.go @@ -1,4 +1,4 @@ -package cpe +package cpes import ( "strings" diff --git a/syft/cpe/python.go b/syft/speculate/cpes/python.go similarity index 98% rename from syft/cpe/python.go rename to syft/speculate/cpes/python.go index fca061035..c3a198831 100644 --- a/syft/cpe/python.go +++ b/syft/speculate/cpes/python.go @@ -1,4 +1,4 @@ -package cpe +package cpes import "github.com/anchore/syft/syft/pkg" diff --git a/syft/cpe/rpm.go b/syft/speculate/cpes/rpm.go similarity index 96% rename from syft/cpe/rpm.go rename to syft/speculate/cpes/rpm.go index ca85ff1b1..3b5064f8b 100644 --- a/syft/cpe/rpm.go +++ b/syft/speculate/cpes/rpm.go @@ -1,4 +1,4 @@ -package cpe +package cpes import "github.com/anchore/syft/syft/pkg" diff --git a/syft/cpe/ruby.go b/syft/speculate/cpes/ruby.go similarity index 97% rename from syft/cpe/ruby.go rename to syft/speculate/cpes/ruby.go index b89e2f6da..1fa10597d 100644 --- a/syft/cpe/ruby.go +++ b/syft/speculate/cpes/ruby.go @@ -1,4 +1,4 @@ -package cpe +package cpes import "github.com/anchore/syft/syft/pkg" diff --git a/syft/cpe/utils.go b/syft/speculate/cpes/utils.go similarity index 97% rename from syft/cpe/utils.go rename to syft/speculate/cpes/utils.go index e048063d9..f8d106d6e 100644 --- a/syft/cpe/utils.go +++ b/syft/speculate/cpes/utils.go @@ -1,4 +1,4 @@ -package cpe +package cpes import "strings" diff --git a/syft/cpe/utils_test.go b/syft/speculate/cpes/utils_test.go similarity index 98% rename from syft/cpe/utils_test.go rename to syft/speculate/cpes/utils_test.go index 8e3c3cbc6..6220506e5 100644 --- a/syft/cpe/utils_test.go +++ b/syft/speculate/cpes/utils_test.go @@ -1,4 +1,4 @@ -package cpe +package cpes import ( "testing" diff --git a/syft/tasks.go b/syft/tasks.go index 1d5c7f23c..e057d8920 100644 --- a/syft/tasks.go +++ b/syft/tasks.go @@ -2,15 +2,15 @@ package syft import ( "fmt" + "github.com/anchore/syft/syft/cataloger/files/fileclassifier" + "github.com/anchore/syft/syft/cataloger/files/filecontents" + "github.com/anchore/syft/syft/cataloger/files/filedigests" + "github.com/anchore/syft/syft/cataloger/files/filemetadata" + "github.com/anchore/syft/syft/cataloger/files/secrets" "github.com/anchore/syft/syft/artifact" - "github.com/anchore/syft/syft/file/cataloger/fileclassifier" - "github.com/anchore/syft/syft/file/cataloger/filecontents" - "github.com/anchore/syft/syft/file/cataloger/filedigests" - "github.com/anchore/syft/syft/file/cataloger/filemetadata" - "github.com/anchore/syft/syft/file/cataloger/secrets" + "github.com/anchore/syft/syft/cataloger/packages" "github.com/anchore/syft/syft/linux" - "github.com/anchore/syft/syft/pkg/cataloger/packages" "github.com/anchore/syft/syft/sbom" "github.com/anchore/syft/syft/source" ) diff --git a/test/integration/catalog_packages_test.go b/test/integration/catalog_packages_test.go index 0d0e2d462..0c5f212e6 100644 --- a/test/integration/catalog_packages_test.go +++ b/test/integration/catalog_packages_test.go @@ -1,7 +1,7 @@ package integration import ( - "github.com/anchore/syft/syft/pkg/cataloger/packages" + "github.com/anchore/syft/syft/cataloger/packages" "github.com/stretchr/testify/require" "testing" @@ -20,7 +20,7 @@ func BenchmarkImagePackageCatalogers(b *testing.B) { imagetest.GetFixtureImage(b, "docker-archive", fixtureImageName) tarPath := imagetest.GetFixtureImageTarPath(b, fixtureImageName) - var pc *pkg.Catalog + var pc *pkg.Collection for _, c := range packages.InstalledCatalogers(packages.DefaultSearchConfig()) { // in case of future alteration where state is persisted, assume no dependency is safe to reuse userInput := "docker-archive:" + tarPath diff --git a/test/integration/utils_test.go b/test/integration/utils_test.go index 6142aa4e0..94634ff54 100644 --- a/test/integration/utils_test.go +++ b/test/integration/utils_test.go @@ -1,8 +1,8 @@ package integration import ( + "github.com/anchore/syft/syft/cataloger/packages" "github.com/anchore/syft/syft/linux" - "github.com/anchore/syft/syft/pkg/cataloger/packages" "github.com/stretchr/testify/require" "testing"