#!/bin/bash args=('-p') while read -r line; do if [[ $line = usr/lib/modules/+([^/])/pkgbase ]]; then pkgbase=$(< "/$line") if [[ ! -e /etc/mkinitcpio.d/"${pkgbase}".preset ]]; then sed "s|%PKGBASE%|${pkgbase}|g" /usr/share/mkinitcpio/hook.preset | install -Dm644 /dev/stdin \ /etc/mkinitcpio.d/"${pkgbase}".preset fi install -Dm644 $(dirname $line)/vmlinuz /boot/vmlinuz-"${pkgbase}" else args=('-P') # all presets break fi done mkinitcpio "${args[@]}" "${pkgbase}"