summarylogtreecommitdiffstats
path: root/kernel-install.sh
blob: de503f85c16d43eb3b0ed62e5485b5097fb95c54 (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
#!/bin/bash

set -euo pipefail
shopt -s inherit_errexit nullglob

cd /

all_kernels=0
versions=()

add_file() {
	local kver="$1"
	kver="${kver##usr/lib/modules/}"
	kver="${kver%%/*}"
	versions+=("$kver")
}

while read -r path; do
	case "$path" in
	usr/lib/modules/*/vmlinuz | usr/lib/modules/*/extramodules/*)
		add_file "$path"
		;;
	*)
		all_kernels=1
		;;
	esac
done

((all_kernels)) && for file in usr/lib/modules/*/vmlinuz; do
	pacman -Qqo "$file" 1>/dev/null 2>/dev/null &&
		add_file "$file"
done

for kver in "${versions[@]}"; do
	kimage="/usr/lib/modules/$kver/vmlinuz"
	echo +kernel-install "$@" "$kver" "$kimage"
	kernel-install "$@" "$kver" "$kimage" || true
done