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:
2026-03-10 22:31:59 +09:00
parent b104ad6e2d
commit 4a63fbbc2a

View File

@@ -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
} }