forked from security/hakurei
cmd/pkgserver: create index without report
This is useful for testing, where report testdata is not available. Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -34,32 +34,34 @@ type PackageIndexEntry struct {
|
|||||||
status []byte `json:"-"`
|
status []byte `json:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func createPackageIndex(cache *pkg.Cache, report *rosa.Report) (_ *PackageIndex, err error) {
|
func createPackageIndex(cache *pkg.Cache, report *rosa.Report) (index *PackageIndex, err error) {
|
||||||
index := new(PackageIndex)
|
index = new(PackageIndex)
|
||||||
index.names = make(map[string]*PackageIndexEntry, rosa.PresetUnexportedStart)
|
index.names = make(map[string]*PackageIndexEntry, rosa.PresetUnexportedStart)
|
||||||
work := make([]PackageIndexEntry, rosa.PresetUnexportedStart)
|
work := make([]PackageIndexEntry, rosa.PresetUnexportedStart)
|
||||||
defer report.HandleAccess(&err)()
|
if report != nil {
|
||||||
|
defer report.HandleAccess(&err)()
|
||||||
|
}
|
||||||
|
|
||||||
for p := range rosa.PresetUnexportedStart {
|
for p := range rosa.PresetUnexportedStart {
|
||||||
m := rosa.GetMetadata(p)
|
m := rosa.GetMetadata(p)
|
||||||
v := rosa.Std.Version(p)
|
v := rosa.Std.Version(p)
|
||||||
a := rosa.Std.Load(p)
|
a := rosa.Std.Load(p)
|
||||||
id := cache.Ident(a)
|
|
||||||
st, n := report.ArtifactOf(id)
|
|
||||||
var status []byte
|
|
||||||
if n < 1 {
|
|
||||||
status = nil
|
|
||||||
} else {
|
|
||||||
status = st
|
|
||||||
}
|
|
||||||
entry := PackageIndexEntry{
|
entry := PackageIndexEntry{
|
||||||
Name: m.Name,
|
Name: m.Name,
|
||||||
Description: m.Description,
|
Description: m.Description,
|
||||||
Website: m.Website,
|
Website: m.Website,
|
||||||
Version: v,
|
Version: v,
|
||||||
HasReport: len(status) > 0,
|
|
||||||
ident: id,
|
|
||||||
status: status,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if cache != nil && report != nil {
|
||||||
|
entry.ident = cache.Ident(a)
|
||||||
|
status, n := report.ArtifactOf(entry.ident)
|
||||||
|
if n >= 0 {
|
||||||
|
entry.HasReport = true
|
||||||
|
entry.status = status
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
work[p] = entry
|
work[p] = entry
|
||||||
index.names[m.Name] = &entry
|
index.names[m.Name] = &entry
|
||||||
}
|
}
|
||||||
@@ -80,5 +82,5 @@ func createPackageIndex(cache *pkg.Cache, report *rosa.Report) (_ *PackageIndex,
|
|||||||
for i, p := range work {
|
for i, p := range work {
|
||||||
index.sorts[NameDescending][i] = &p
|
index.sorts[NameDescending][i] = &p
|
||||||
}
|
}
|
||||||
return index, err
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user