summarylogtreecommitdiffstats
path: root/kernel-install-booster.sh
blob: e95d2aae0ec6c1c8b86cb2db7b00a845b56bc92e (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
#!/bin/bash
set -euo pipefail
shopt -s nullglob

cd /

for kernel_dir in /usr/lib/modules/*; do
    [[ -d "$kernel_dir" ]] || continue

    if ! pkgbase=$(pacman -Qqo "$kernel_dir/pkgbase" 2>/dev/null); then
        echo "Skipping $kernel_dir, no package found"
        continue
    fi

    kver=$(basename $kernel_dir)

    vmlinuz="/boot/vmlinuz-$pkgbase"
    initramfs="/boot/booster-$pkgbase.img"

    if [[ -f "$vmlinuz" && -f "$initramfs" ]]; then
        echo "Registering $kver ($vmlinuz + $initramfs) in systemd-boot..."
        kernel-install add "$kver" "$vmlinuz" "$initramfs"
    else
        echo "Warning: missing vmlinuz or initramfs for $pkgbase"
    fi
done