internal/rosa: read overridden version string from source
Test / Create distribution (push) Successful in 54s
Test / Sandbox (push) Successful in 3m2s
Test / ShareFS (push) Successful in 4m2s
Test / Hakurei (push) Successful in 4m10s
Test / Sandbox (race detector) (push) Successful in 5m31s
Test / Hakurei (race detector) (push) Successful in 6m42s
Test / Flake checks (push) Successful in 1m7s

This is more correct than the hardcoded string and is generally more robust against relative paths.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-06-20 01:18:12 +09:00
parent a4fab67811
commit 7ab54b8c94
+12 -1
View File
@@ -7,6 +7,7 @@ import (
"context"
"encoding/json"
"errors"
"fmt"
"io"
"io/fs"
"iter"
@@ -1255,6 +1256,16 @@ func (s *S) RegisterFS(fsys fs.FS) error {
// The resulting IR is curable on the daemon. Must not be used concurrently with
// any other method.
func (s *S) SetSource(fsys fs.FS) error {
var version string
if p, err := fs.ReadFile(fsys, "cmd/dist/VERSION"); err != nil {
return err
} else if len(p) < 2 {
return fmt.Errorf("invalid version string %q", string(p))
} else {
version = unsafe.String(unsafe.SliceData(p), len(p))
}
version = version[1:len(version)-1] + "-CURRENT"
var buf bytes.Buffer
w, err := gzip.NewWriterLevel(&buf, gzip.BestSpeed)
if err != nil {
@@ -1326,7 +1337,7 @@ func (s *S) SetSource(fsys fs.FS) error {
return &Metadata{
Name: name,
Description: "hakurei source tree (current)",
Version: "1.0.0-CURRENT",
Version: version,
Exclude: true,
}, pkg.NewTar(pkg.NewDecompress(a, pkg.Gzip))
}),