summarylogtreecommitdiffstats
path: root/dracut-install
blob: dc2ab57ded103e9f463f70ac165377935bd83b69 (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
#!/bin/bash -e

all=0
lines=()

while read -r line; do
	if [[ $line != */vmlinuz ]]; then
		# triggers when it's a change to dracut files
		all=1
		continue
	fi

	pkgbase="$(<${line%/vmlinuz}/pkgbase)"
	install -Dm644 "${line}" "/boot/vmlinuz-${pkgbase}"

	lines+=(${line})
done

if (( all )); then
	lines=(/usr/lib/modules/*/vmlinuz)
fi

for line in "${lines[@]}"; do
	folder="${line%/vmlinuz}"

	pkgbase="$(<${folder}/pkgbase)"
	kver="${folder##*/}"

	echo ":: Building initramfs for $pkgbase ($kver)"
	dracut --force --hostonly "/boot/initramfs-${pkgbase}.img" "${kver}"

	echo ":: Building fallback initramfs for $pkgbase ($kver)"
	dracut --force --no-hostonly "/boot/initramfs-${pkgbase}-fallback.img" "${kver}"
done