void-packages/srcpkgs/xbps-triggers/files/initramfs-tools

66 lines
1.5 KiB
Bash
Executable file

#!/bin/sh -e
#
# Runs update-initramfs(8) to create/update an initramfs for specified
# version (if the pkg that is triggering it) or for the currently
# installed kernel otherwise.
#
# Arguments: $ACTION = [run/targets]
# $TARGET = [post-install/post-remove]
# $PKGNAME
# $VERSION
# $UPDATE = [yes/no]
#
ACTION="$1"
TARGET="$2"
PKGNAME="$3"
VERSION="$4"
UPDATE="$5"
update_initramfs=usr/sbin/update-initramfs
case "$ACTION" in
targets)
echo "post-install post-remove"
;;
run)
# Exit if the command cannot be executed.
[ ! -x ${update_initramfs} ] && exit 0
# Cannot continue if /proc and /sys not mounted!
if [ ! -e ./proc/filesystems -a ! -e ./sys/kernel/vmcoreinfo ]; then
echo "initramfs-tools trigger:"
echo "WARNING: /proc and /sys (relative to cwd) are not mounted"
echo "WARNING: cannot continue, exiting..."
exit 0
fi
# Always use relative paths to create the initramfs!
initramfs_args="-b ./boot"
if [ "$PKGNAME" = "kernel" ]; then
if [ "$TARGET" = "post-remove" ]; then
# Remove the initramfs if removing.
initramfs_args="$initramfs_args -d -k ${VERSION}"
fi
if [ ! -f var/lib/initramfs-tools/${VERSION} ]; then
# Create new initramfs
initramfs_args="$initramfs_args -c -t -k ${VERSION}"
else
# Update existing initramfs
initramfs_args="$initramfs_args -B -u -t -k ${VERSION}"
fi
else
# Update initramfs for all kernels
initramfs_args="$initramfs_args -B -u -t -k all"
fi
${update_initramfs} ${initramfs_args}
exit $?
;;
*)
exit 1
;;
esac
exit 0