package rosa import "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) newImageInitramfs() (pkg.Artifact, string) { return t.New("initramfs", TNoToolchain, []pkg.Artifact{ t.Load(Zstd), t.Load(EarlyInit), t.Load(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, } }