Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( IgnoreGPGPubkey = cmpopts.IgnoreSliceElements(func(p *claircore.Package) bool { return p.Name == `gpg-pubkey` }) SortPackages = cmpopts.SortSlices(func(a, b *claircore.Package) bool { return a.Name < b.Name }) IgnorePackageDB = cmpopts.IgnoreFields(claircore.Package{}, ".PackageDB") )
Does what it says on the tin.
View Source
var EpochCompare = cmp.FilterPath( func(p cmp.Path) bool { return p.Last().String() == ".Version" }, cmp.Comparer(func(a, b string) bool { evr, vr := a, b if len(b) > len(a) { evr = b vr = a } return strings.Contains(evr, vr) }), )
RPM Manifest doesn't have package epoch information. This checks if the VR string is contained in the EVR string.
View Source
var HintCompare = cmp.FilterPath( func(p cmp.Path) bool { return p.Last().String() == ".RepositoryHint" }, cmp.Comparer(func(a, b string) bool { am, bm := make(map[string]string), make(map[string]string) for _, s := range strings.Split(a, "|") { if s == "" { continue } kv := strings.SplitN(s, ":", 2) if len(kv) != 2 { println(s) } am[kv[0]] = kv[1] } delete(am, "hash") for _, s := range strings.Split(b, "|") { if s == "" { continue } kv := strings.SplitN(s, ":", 2) bm[kv[0]] = kv[1] } delete(bm, "hash") return cmp.Equal(am, bm) }), )
RPM Manifest doesn't have checksum information. It does have keyid information, so cook up a comparison function that understands the rpm package's packed format.
View Source
var Options = cmp.Options{ HintCompare, EpochCompare, IgnorePackageDB, IgnoreGPGPubkey, SortPackages, }
Functions ¶
Types ¶
type Manifest ¶
type Manifest struct {
RPM []ManifestRPM `json:"rpms"`
}
Click to show internal directories.
Click to hide internal directories.