mirror of
https://github.com/anchore/syft.git
synced 2025-11-17 08:23:15 +01:00
* remove strong distro type Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * bump json schema to v3 (breaking distro shape) Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * fix linting Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * allow for v2 decoding of distro idLikes field in v3 json decoder Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * fix casing in simple linux release name Signed-off-by: Alex Goodman <alex.goodman@anchore.com> * use discovered name as pretty name in simple linux release Signed-off-by: Alex Goodman <alex.goodman@anchore.com>
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package model
|
|
|
|
import (
|
|
"encoding/json"
|
|
)
|
|
|
|
type IDLikes []string
|
|
|
|
type LinuxRelease struct {
|
|
PrettyName string `json:"prettyName,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
ID string `json:"id,omitempty"`
|
|
IDLike IDLikes `json:"idLike,omitempty"`
|
|
Version string `json:"version,omitempty"`
|
|
VersionID string `json:"versionID,omitempty"`
|
|
Variant string `json:"variant,omitempty"`
|
|
VariantID string `json:"variantID,omitempty"`
|
|
HomeURL string `json:"homeURL,omitempty"`
|
|
SupportURL string `json:"supportURL,omitempty"`
|
|
BugReportURL string `json:"bugReportURL,omitempty"`
|
|
PrivacyPolicyURL string `json:"privacyPolicyURL,omitempty"`
|
|
CPEName string `json:"cpeName,omitempty"`
|
|
}
|
|
|
|
func (s *IDLikes) UnmarshalJSON(data []byte) error {
|
|
var str string
|
|
var strSlice []string
|
|
|
|
// we support unmarshalling from a single value to support syft json schema v2
|
|
if err := json.Unmarshal(data, &str); err == nil {
|
|
*s = []string{str}
|
|
} else if err := json.Unmarshal(data, &strSlice); err == nil {
|
|
*s = strSlice
|
|
} else {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|