Compare commits

2 Commits

Author SHA1 Message Date
7011f8a580 cmd/pkgserver: refer to preset in index
This enables referencing back to internal/rosa through an entry obtained via the index.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-11 03:06:30 +09:00
dac33d7720 cmd/pkgserver: handle unversioned value
This omits the field for an unversioned artifact, and only does so once on startup.

Signed-off-by: Ophestra <cat@gensokyo.uk>
2026-03-11 02:52:23 +09:00

View File

@@ -1,6 +1,7 @@
package main package main
import ( import (
"errors"
"slices" "slices"
"strings" "strings"
"unique" "unique"
@@ -26,6 +27,7 @@ type packageIndex struct {
// metadata holds [rosa.Metadata] extended with additional information. // metadata holds [rosa.Metadata] extended with additional information.
type metadata struct { type metadata struct {
p rosa.PArtifact
*rosa.Metadata *rosa.Metadata
// Populated via [rosa.Toolchain.Version], [rosa.Unversioned] is equivalent // Populated via [rosa.Toolchain.Version], [rosa.Unversioned] is equivalent
@@ -50,9 +52,17 @@ func (index *packageIndex) populate(cache *pkg.Cache, report *rosa.Report) (err
index.names = make(map[string]*metadata) index.names = make(map[string]*metadata)
for p := range rosa.PresetUnexportedStart { for p := range rosa.PresetUnexportedStart {
m := metadata{ m := metadata{
p: p,
Metadata: rosa.GetMetadata(p), Metadata: rosa.GetMetadata(p),
Version: rosa.Std.Version(p), Version: rosa.Std.Version(p),
} }
if m.Version == "" {
return errors.New("invalid version from " + m.Name)
}
if m.Version == rosa.Unversioned {
m.Version = ""
}
if cache != nil && report != nil { if cache != nil && report != nil {
m.ident = cache.Ident(rosa.Std.Load(p)) m.ident = cache.Ident(rosa.Std.Load(p))