github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/syft/pkg/cataloger/swift/package.go (about) 1 package swift 2 3 import ( 4 "strings" 5 6 "github.com/anchore/packageurl-go" 7 "github.com/anchore/syft/syft/file" 8 "github.com/anchore/syft/syft/pkg" 9 ) 10 11 func newSwiftPackageManagerPackage(name, version, sourceURL, revision string, locations ...file.Location) pkg.Package { 12 p := pkg.Package{ 13 Name: name, 14 Version: version, 15 PURL: swiftPackageManagerPackageURL(name, version, sourceURL), 16 Locations: file.NewLocationSet(locations...), 17 Type: pkg.SwiftPkg, 18 Language: pkg.Swift, 19 MetadataType: pkg.SwiftPackageManagerMetadataType, 20 Metadata: pkg.SwiftPackageManagerMetadata{ 21 Revision: revision, 22 }, 23 } 24 25 p.SetID() 26 27 return p 28 } 29 30 func newCocoaPodsPackage(name, version, hash string, locations ...file.Location) pkg.Package { 31 p := pkg.Package{ 32 Name: name, 33 Version: version, 34 PURL: cocoaPodsPackageURL(name, version), 35 Locations: file.NewLocationSet(locations...), 36 Type: pkg.CocoapodsPkg, 37 Language: pkg.Swift, 38 MetadataType: pkg.CocoapodsMetadataType, 39 Metadata: pkg.CocoapodsMetadata{ 40 Checksum: hash, 41 }, 42 } 43 44 p.SetID() 45 46 return p 47 } 48 49 func cocoaPodsPackageURL(name, version string) string { 50 var qualifiers packageurl.Qualifiers 51 52 return packageurl.NewPackageURL( 53 packageurl.TypeCocoapods, 54 "", 55 name, 56 version, 57 qualifiers, 58 "", 59 ).ToString() 60 } 61 62 func swiftPackageManagerPackageURL(name, version, sourceURL string) string { 63 var qualifiers packageurl.Qualifiers 64 65 return packageurl.NewPackageURL( 66 packageurl.TypeSwift, 67 strings.Replace(sourceURL, "https://", "", 1), 68 name, 69 version, 70 qualifiers, 71 "", 72 ).ToString() 73 }