aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/images.go
blob: bef35d2a6cd8d0af4f353ec07779c59e4576b5cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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,
	}
}