#!/bin/sh # # Trigger to regenerate an initramfs for every kernel with a module directory # in lib/modules on package post-install. # # To change the initramfs generator, edit or create the file # etc/default/initramfs-regenerate and add or change the line # # INITRAMFS_GENERATOR= # # where is one of "dracut", "mkinitcpio" or "none". By default, a # value of "dracut" is assumed. # # Arguments: $ACTION = [run/targets] # $TARGET = [post-install/post-remove] # $PKGNAME # $VERSION # $UPDATE = [yes/no] ACTION="$1" TARGET="$2" PKGNAME="$3" VERSION="$4" UPDATE="$5" export PATH="usr/bin:/usr/sbin:/usr/bin:/sbin:/bin" case "$ACTION" in targets) echo "post-install post-remove" exit 0 ;; run) ;; *) exit 1 ;; esac # Prefer the new alternatives-based initramfs hooks HOOK="etc/kernel.d/post-install/20-initramfs" if [ ! -x "${HOOK}" ]; then # Otherwise, use legacy trigger behavior to find a preferred hook [ -f etc/default/initramfs-regenerate ] && . etc/default/initramfs-regenerate HOOK="etc/kernel.d/post-install/20-${INITRAMFS_GENERATOR:-dracut}" [ -x "${HOOK}" ] || exit 0 fi echo "Regenerating initramfs images using kernel hook ${HOOK##*/}" # Regenerate images for every kernel version with modules for kdir in usr/lib/modules/*; do [ -d "${kdir}/kernel" ] || continue kver="${kdir##*/}" "${HOOK}" "${PKGNAME}" "${kver}" done exit 0