Files
hakurei/internal/rosa/stage0.go
2026-05-21 18:10:02 +09:00

44 lines
936 B
Go

package rosa
import (
"hakurei.app/fhs"
"hakurei.app/internal/pkg"
)
// Stage0 is the handle of the stage0 distribution tarball built on the
// toolchain of stage [Std].
var Stage0 = H("rosa-stage0")
func init() {
meta := Metadata{
Name: "rosa-stage0",
Description: "Rosa OS stage0 toolchain tarball for bootstrap",
Version: Unversioned,
}
native.MustRegister(meta.Name, func(t Toolchain) (*Metadata, pkg.Artifact) {
return &meta, t.New("rosa-stage0", 0, t.Append(nil,
H("bzip2"),
), nil, nil, `
umask 377
tar \
-vjc \
-C /stage0 \
-f /work/stage0-`+t.triple()+`.tar.bz2 \
.
`, pkg.Path(fhs.AbsRoot.Append("stage0"), false, t.Append(nil,
LLVM,
Mksh,
_toyboxEarly,
)...))
})
}
// HasStage0 returns whether a stage0 distribution is available.
func (s *S) HasStage0() (ok bool) {
func() {
defer func() { ok = recover() == nil }()
s.New(stageEarly).MustLoad(_stage0Dist)
}()
return
}