mirror of
https://github.com/anchore/syft.git
synced 2025-11-18 00:43:20 +01:00
* Add Basic Nix Cataloger Signed-off-by: Julio Tain Sueiras <juliosueiras@gmail.com> * Update nix def for the latest syft definition Signed-off-by: Julio Tain Sueiras <juliosueiras@gmail.com> * capture nix package files on pkg.NixStoreMetadata Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * fix unit tests and linting Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * update JSON schema Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * address review comments Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * Update syft/pkg/cataloger/nix/parse_nix_store_path_test.go Co-authored-by: Florian Klink <flokli@flokli.de> Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * support unstable version conventions Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * update json schema relative to main branch Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * update syft json with v7.1.1 schema Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * fix CLI tests Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * remove extra continue statement Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * add Nix to list of supported ecosystems Signed-off-by: Alex Goodman <alex.goodman@anchore.com> --------- Signed-off-by: Julio Tain Sueiras <juliosueiras@gmail.com> Signed-off-by: Alex Goodman <alex.goodman@anchore.com> Co-authored-by: Julio Tain Sueiras <juliosueiras@gmail.com> Co-authored-by: Florian Klink <flokli@flokli.de>
109 lines
4.7 KiB
Go
109 lines
4.7 KiB
Go
package pkg
|
|
|
|
import (
|
|
"reflect"
|
|
)
|
|
|
|
// MetadataType represents the data shape stored within pkg.Package.Metadata.
|
|
type MetadataType string
|
|
|
|
const (
|
|
// this is the full set of data shapes that can be represented within the pkg.Package.Metadata field
|
|
|
|
UnknownMetadataType MetadataType = "UnknownMetadata"
|
|
AlpmMetadataType MetadataType = "AlpmMetadata"
|
|
ApkMetadataType MetadataType = "ApkMetadata"
|
|
BinaryMetadataType MetadataType = "BinaryMetadata"
|
|
CocoapodsMetadataType MetadataType = "CocoapodsMetadataType"
|
|
ConanLockMetadataType MetadataType = "ConanLockMetadataType"
|
|
ConanMetadataType MetadataType = "ConanMetadataType"
|
|
DartPubMetadataType MetadataType = "DartPubMetadata"
|
|
DotnetDepsMetadataType MetadataType = "DotnetDepsMetadata"
|
|
DpkgMetadataType MetadataType = "DpkgMetadata"
|
|
GemMetadataType MetadataType = "GemMetadata"
|
|
GolangBinMetadataType MetadataType = "GolangBinMetadata"
|
|
GolangModMetadataType MetadataType = "GolangModMetadata"
|
|
HackageMetadataType MetadataType = "HackageMetadataType"
|
|
JavaMetadataType MetadataType = "JavaMetadata"
|
|
KbPackageMetadataType MetadataType = "KbPackageMetadata"
|
|
MixLockMetadataType MetadataType = "MixLockMetadataType"
|
|
NixStoreMetadataType MetadataType = "NixStoreMetadata"
|
|
NpmPackageJSONMetadataType MetadataType = "NpmPackageJsonMetadata"
|
|
NpmPackageLockJSONMetadataType MetadataType = "NpmPackageLockJsonMetadata"
|
|
PhpComposerJSONMetadataType MetadataType = "PhpComposerJsonMetadata"
|
|
PortageMetadataType MetadataType = "PortageMetadata"
|
|
PythonPackageMetadataType MetadataType = "PythonPackageMetadata"
|
|
PythonPipfileLockMetadataType MetadataType = "PythonPipfileLockMetadata"
|
|
RebarLockMetadataType MetadataType = "RebarLockMetadataType"
|
|
RpmMetadataType MetadataType = "RpmMetadata"
|
|
RustCargoPackageMetadataType MetadataType = "RustCargoPackageMetadata"
|
|
)
|
|
|
|
var AllMetadataTypes = []MetadataType{
|
|
AlpmMetadataType,
|
|
ApkMetadataType,
|
|
BinaryMetadataType,
|
|
CocoapodsMetadataType,
|
|
ConanLockMetadataType,
|
|
ConanMetadataType,
|
|
DartPubMetadataType,
|
|
DotnetDepsMetadataType,
|
|
DpkgMetadataType,
|
|
GemMetadataType,
|
|
GolangBinMetadataType,
|
|
GolangModMetadataType,
|
|
HackageMetadataType,
|
|
JavaMetadataType,
|
|
KbPackageMetadataType,
|
|
MixLockMetadataType,
|
|
NixStoreMetadataType,
|
|
NpmPackageJSONMetadataType,
|
|
NpmPackageLockJSONMetadataType,
|
|
PhpComposerJSONMetadataType,
|
|
PortageMetadataType,
|
|
PythonPackageMetadataType,
|
|
PythonPipfileLockMetadataType,
|
|
RebarLockMetadataType,
|
|
RpmMetadataType,
|
|
RustCargoPackageMetadataType,
|
|
}
|
|
|
|
var MetadataTypeByName = map[MetadataType]reflect.Type{
|
|
AlpmMetadataType: reflect.TypeOf(AlpmMetadata{}),
|
|
ApkMetadataType: reflect.TypeOf(ApkMetadata{}),
|
|
BinaryMetadataType: reflect.TypeOf(BinaryMetadata{}),
|
|
CocoapodsMetadataType: reflect.TypeOf(CocoapodsMetadata{}),
|
|
ConanLockMetadataType: reflect.TypeOf(ConanLockMetadata{}),
|
|
ConanMetadataType: reflect.TypeOf(ConanMetadata{}),
|
|
DartPubMetadataType: reflect.TypeOf(DartPubMetadata{}),
|
|
DotnetDepsMetadataType: reflect.TypeOf(DotnetDepsMetadata{}),
|
|
DpkgMetadataType: reflect.TypeOf(DpkgMetadata{}),
|
|
GemMetadataType: reflect.TypeOf(GemMetadata{}),
|
|
GolangBinMetadataType: reflect.TypeOf(GolangBinMetadata{}),
|
|
GolangModMetadataType: reflect.TypeOf(GolangModMetadata{}),
|
|
HackageMetadataType: reflect.TypeOf(HackageMetadata{}),
|
|
JavaMetadataType: reflect.TypeOf(JavaMetadata{}),
|
|
KbPackageMetadataType: reflect.TypeOf(KbPackageMetadata{}),
|
|
MixLockMetadataType: reflect.TypeOf(MixLockMetadata{}),
|
|
NixStoreMetadataType: reflect.TypeOf(NixStoreMetadata{}),
|
|
NpmPackageJSONMetadataType: reflect.TypeOf(NpmPackageJSONMetadata{}),
|
|
NpmPackageLockJSONMetadataType: reflect.TypeOf(NpmPackageLockJSONMetadata{}),
|
|
PhpComposerJSONMetadataType: reflect.TypeOf(PhpComposerJSONMetadata{}),
|
|
PortageMetadataType: reflect.TypeOf(PortageMetadata{}),
|
|
PythonPackageMetadataType: reflect.TypeOf(PythonPackageMetadata{}),
|
|
PythonPipfileLockMetadataType: reflect.TypeOf(PythonPipfileLockMetadata{}),
|
|
RebarLockMetadataType: reflect.TypeOf(RebarLockMetadata{}),
|
|
RpmMetadataType: reflect.TypeOf(RpmMetadata{}),
|
|
RustCargoPackageMetadataType: reflect.TypeOf(CargoPackageMetadata{}),
|
|
}
|
|
|
|
func CleanMetadataType(typ MetadataType) MetadataType {
|
|
if typ == "RpmdbMetadata" {
|
|
return RpmMetadataType
|
|
}
|
|
if typ == "GolangMetadata" {
|
|
return GolangBinMetadataType
|
|
}
|
|
return typ
|
|
}
|