calamares-net/etc/calamares/scripts/mkinitcpio-install-calamares

41 lines
1 KiB
Text
Raw Normal View History

2024-05-11 14:01:40 +03:30
#!/bin/bash -e
args=()
all=0
while read -r line; do
if [[ $line != */vmlinuz ]]; then
# triggers when it's a change to usr/lib/initcpio/*
all=1
continue
fi
if ! read -r pkgbase > /dev/null 2>&1 < "${line%/vmlinuz}/pkgbase"; then
# if the kernel has no pkgbase, we skip it
continue
fi
preset="/etc/mkinitcpio.d/${pkgbase}.preset"
if [[ ! -e $preset ]]; then
if [[ -e $preset.pacsave ]]; then
# move the pacsave to the template
mv "${preset}.pacsave" "$preset"
else
# create the preset from the template
sed "s|%PKGBASE%|${pkgbase}|g" /usr/share/mkinitcpio/hook.preset \
| install -Dm644 /dev/stdin "$preset"
fi
fi
# always install the kernel
install -Dm644 "${line}" "/boot/vmlinuz-${pkgbase}"
# compound args for each kernel
args+=(-p "${pkgbase}")
done
if (( all )) && compgen -G /etc/mkinitcpio.d/"*.preset" > /dev/null; then
# change to use all presets
args=(-P)
fi