From 443a7a30f618c32fea6e564f0fcf0822a0d43538 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 21 May 2026 14:07:20 +0900 Subject: [PATCH] internal/rosa: use string pair for files This is a much cleaner representation than the separator syntax. Signed-off-by: Ophestra --- internal/rosa/azalea/evaluate.go | 2 +- internal/rosa/package/glib/package.az | 8 +++---- internal/rosa/package/kernel/package.az | 24 ++++++++++----------- internal/rosa/package/libarchive/package.az | 2 +- internal/rosa/state.go | 19 ++++++++-------- 5 files changed, 28 insertions(+), 27 deletions(-) diff --git a/internal/rosa/azalea/evaluate.go b/internal/rosa/azalea/evaluate.go index 617a1618..d57f5cac 100644 --- a/internal/rosa/azalea/evaluate.go +++ b/internal/rosa/azalea/evaluate.go @@ -91,7 +91,7 @@ type TypeError struct { } func (e TypeError) Error() string { - return "expected " + e.Asserted.String() + ", got " + e.Concrete.String() + return fmt.Sprintf("expected %s, got %s", e.Asserted, e.Concrete) } func (e TypeError) Is(err error) bool { diff --git a/internal/rosa/package/glib/package.az b/internal/rosa/package/glib/package.az index 583c7832..316ae8e2 100644 --- a/internal/rosa/package/glib/package.az +++ b/internal/rosa/package/glib/package.az @@ -10,10 +10,10 @@ package glib { checksum = "Rkszn6W4RHjyspyqfXdVAVawdwDJCuS0Zu0f7qot7tbJhnw2fUDoUUJB40m-1MCX"; }; - files = [ - "/etc/machine-id:stub-machine-id-fhs", - "/system/var/lib/dbus/machine-id:stub-machine-id", - ]; + files = { + "/etc/machine-id": "stub-machine-id-fhs"; + "/system/var/lib/dbus/machine-id": "stub-machine-id"; + }; exec = meson { setup = { diff --git a/internal/rosa/package/kernel/package.az b/internal/rosa/package/kernel/package.az index 70ceb997..70dbe28d 100644 --- a/internal/rosa/package/kernel/package.az +++ b/internal/rosa/package/kernel/package.az @@ -17,10 +17,10 @@ package kernel-headers { source = kernel-source; - files = [ + files = { // updated manually for API changes - "version.h", - ]; + "version.h"; + }; toyboxEarly = true; exec = make { @@ -61,16 +61,16 @@ package kernel { "f54a91f5337cd918eb86cf600320d25b6cfd8209.patch", "6ce6fbfddc5b127e4f57c3b5bfdcf40239a4fc2f.patch", ]; - files = [ - arch { - amd64 = ".config:kernel_amd64.config"; - arm64 = ".config:kernel_arm64.config"; - riscv64 = ".config:kernel_riscv64.config"; - }, + files = { + ".config": arch { + amd64 = "kernel_amd64.config"; + arm64 = "kernel_arm64.config"; + riscv64 = "kernel_riscv64.config"; + }; - ".installkernel:installkernel", - ".depmod:depmod", - ]; + ".installkernel": "installkernel"; + ".depmod": "depmod"; + }; env = [ "PATH=/system/sbin", diff --git a/internal/rosa/package/libarchive/package.az b/internal/rosa/package/libarchive/package.az index 2816e299..73b87804 100644 --- a/internal/rosa/package/libarchive/package.az +++ b/internal/rosa/package/libarchive/package.az @@ -10,7 +10,7 @@ package libarchive { checksum = "CUJK4MDQmZmATClgQBH2Wt-7Ts4iiSUlg1J_TVb6-5IK3rVUgVLIMc5k-bnWB9w3"; }; - files = [ "CTestCustom.cmake" ]; + files = { "CTestCustom.cmake"; }; writable = true; early = "\ninstall -Dv /usr/src/CTestCustom.cmake /cure/\n"; diff --git a/internal/rosa/state.go b/internal/rosa/state.go index 6142e4ac..6ff6f1cf 100644 --- a/internal/rosa/state.go +++ b/internal/rosa/state.go @@ -899,7 +899,7 @@ func (ctx *evalContext) pf( var ( attr PackageAttr patches []string - files []string + files []KV excl bool early bool @@ -965,16 +965,17 @@ func (ctx *evalContext) pf( for _, pair := range files { var pathname *check.Absolute - dst, src, ok := strings.Cut(pair, ":") - if !ok { - src, dst = dst, filepath.Base(dst) + if pathname, err = check.NewAbs(pair[0]); err != nil { + pathname = AbsUsrSrc.Append(pair[0]) + err = nil } - if pathname, err = check.NewAbs(dst); err != nil { - pathname = AbsUsrSrc.Append(dst) + + if pair[1] == "" { + pair[1] = pair[0] } var p []byte - p, err = fs.ReadFile(ctx.b, src) + p, err = fs.ReadFile(ctx.b, pair[1]) if err != nil { return } @@ -982,8 +983,8 @@ func (ctx *evalContext) pf( attr.Paths = append(attr.Paths, pkg.Path( pathname, false, - pkg.NewFile(filepath.Base(dst), p), - )) + pkg.NewFile(filepath.Base(pair[0]), p)), + ) } if excl {