package rosa import ( "hakurei.app/container/fhs" "hakurei.app/internal/pkg" ) func init() { artifactsM[EarlyInit] = Metadata{ Name: "earlyinit", Description: "Rosa OS initramfs init program", f: func(t Toolchain) (pkg.Artifact, string) { return t.newHakurei("-early-init", ` mkdir -p /work/system/libexec/hakurei/ echo '# Building earlyinit.' go build -trimpath -v -o /work/system/libexec/hakurei -ldflags="-s -w -buildid= -linkmode external -extldflags=-static -X hakurei.app/internal/info.buildVersion=${HAKUREI_VERSION} " ./cmd/earlyinit echo `, false), Unversioned }, } } func (t Toolchain) newImageSystem() (pkg.Artifact, string) { return t.New("system.img", TNoToolchain, t.AppendPresets(nil, SquashfsTools, ), nil, nil, ` mksquashfs /mnt/system /work/system.img `, pkg.Path(fhs.AbsRoot.Append("mnt"), false, t.Load(Musl), t.Load(Mksh), t.Load(Toybox), )), Unversioned } func init() { artifactsM[ImageSystem] = Metadata{ Name: "system-image", Description: "Rosa OS system image", f: Toolchain.newImageSystem, } } func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) { return t.New("initramfs", TNoToolchain, t.AppendPresets(nil, Zstd, EarlyInit, GenInitCPIO, ), nil, nil, ` gen_init_cpio -t 4294967295 -c /usr/src/initramfs | zstd > /work/initramfs.zst `, pkg.Path(AbsUsrSrc.Append("initramfs"), false, pkg.NewFile("initramfs", []byte(` dir /dev 0755 0 0 nod /dev/null 0666 0 0 c 1 3 nod /dev/console 0600 0 0 c 5 1 file /init /system/libexec/hakurei/earlyinit 0555 0 0 `)))), Unversioned } func init() { artifactsM[ImageInitramfs] = Metadata{ Name: "initramfs-image", Description: "Rosa OS initramfs image", f: Toolchain.newImageInitramfs, } }