aboutsummaryrefslogtreecommitdiffhomepage
path: root/cmd/mbf/main.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-19 00:03:42 +0900
committerOphestra <cat@gensokyo.uk>2026-05-19 00:44:24 +0900
commit8807cbc7305e424725b2be8eed7ecd9234f7772e (patch)
tree5998f055396505becf0f99fcba3c86514f00650b /cmd/mbf/main.go
parent0e95573f187f64de1a46f27af67325e57037b9a9 (diff)
internal/rosa: create metadata alongside artifact
This enables deferring evaluation of azalea-based packages and fixes the longstanding quirk of version being disjoint from other metadata. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'cmd/mbf/main.go')
-rw-r--r--cmd/mbf/main.go24
1 files changed, 10 insertions, 14 deletions
diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go
index 526dce50..1910a100 100644
--- a/cmd/mbf/main.go
+++ b/cmd/mbf/main.go
@@ -118,7 +118,7 @@ func main() {
rosa.Native().DropCaches("", flags)
cross := flagArch != "" && flagArch != runtime.GOARCH
if flagQEMU || cross {
- cm.qemu, _ = rosa.Native().Std().Load(rosa.QEMU)
+ _, cm.qemu = rosa.Native().Std().MustLoad(rosa.QEMU)
}
if cross {
@@ -358,7 +358,7 @@ func main() {
for range max(flagJobs, 1) {
wg.Go(func() {
for p := range w {
- meta := rosa.Native().MustGet(p)
+ meta, _ := rosa.Native().Std().MustLoad(p)
if meta.ID == 0 {
continue
}
@@ -371,13 +371,9 @@ func main() {
continue
}
- _, version := rosa.Native().Std().Load(p)
- if current, latest :=
- version,
- meta.GetLatest(v); current != latest {
-
+ if latest := meta.GetLatest(v); meta.Version != latest {
n.Add(1)
- log.Printf("%s %s < %s", meta.Name, current, latest)
+ log.Printf("%s %s < %s", meta.Name, meta.Version, latest)
continue
}
@@ -453,7 +449,7 @@ func main() {
)
if err = cm.Do(func(cache *pkg.Cache) (err error) {
- llvm, _ := rosa.Native().New(s - 2).Load(rosa.LLVM)
+ _, llvm := rosa.Native().New(s - 2).Load(rosa.LLVM)
pathname, _, err = cache.Cure(llvm)
return
}); err != nil {
@@ -462,7 +458,7 @@ func main() {
log.Println("stage1:", pathname)
if err = cm.Do(func(cache *pkg.Cache) (err error) {
- llvm, _ := rosa.Native().New(s - 1).Load(rosa.LLVM)
+ _, llvm := rosa.Native().New(s - 1).Load(rosa.LLVM)
pathname, checksum[0], err = cache.Cure(llvm)
return
}); err != nil {
@@ -470,7 +466,7 @@ func main() {
}
log.Println("stage2:", pathname)
if err = cm.Do(func(cache *pkg.Cache) (err error) {
- llvm, _ := rosa.Native().New(s).Load(rosa.LLVM)
+ _, llvm := rosa.Native().New(s).Load(rosa.LLVM)
pathname, checksum[1], err = cache.Cure(llvm)
return
}); err != nil {
@@ -492,7 +488,7 @@ func main() {
if flagStage0 {
if err = cm.Do(func(cache *pkg.Cache) (err error) {
- stage0, _ := rosa.Native().New(s).Load(rosa.Stage0)
+ _, stage0 := rosa.Native().New(s).Load(rosa.Stage0)
pathname, _, err = cache.Cure(stage0)
return
}); err != nil {
@@ -546,7 +542,7 @@ func main() {
t -= 1
}
- a, _ := rosa.Native().New(t).Load(rosa.ArtifactH(unique.Make(args[0])))
+ _, a := rosa.Native().New(t).Load(rosa.ArtifactH(unique.Make(args[0])))
if a == nil {
return fmt.Errorf("unknown artifact %q", args[0])
}
@@ -762,7 +758,7 @@ func main() {
handles := make([]rosa.ArtifactH, len(args)+3)
for i, arg := range args {
handles[i] = rosa.ArtifactH(unique.Make(arg))
- if rosa.Native().Get(handles[i]) == nil {
+ if meta, _ := rosa.Native().Std().Load(handles[i]); meta == nil {
return fmt.Errorf("unknown artifact %q", arg)
}
}