diff options
Diffstat (limited to '')
-rwxr-xr-x | debian/extra/kernel-install.d/85-initrd.install | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/debian/extra/kernel-install.d/85-initrd.install b/debian/extra/kernel-install.d/85-initrd.install new file mode 100755 index 0000000..4f8b101 --- /dev/null +++ b/debian/extra/kernel-install.d/85-initrd.install @@ -0,0 +1,38 @@ +#!/bin/sh +set -eu +# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- +# ex: ts=8 sw=4 sts=4 et filetype=sh + +COMMAND="$1" +KERNEL_VERSION="$2" +BOOT_DIR_ABS="$3" + +INITRD_SRC="/boot/initrd.img-$KERNEL_VERSION" +INITRD_DEST="$BOOT_DIR_ABS/initrd" + +if [ "$COMMAND" = remove ]; then + exec rm -f "$INITRD_DEST" +fi + +if [ "$COMMAND" != add ]; then + echo "Invalid command $COMMAND" >&2 + exit 1 +fi + +if [ "$#" -ge 5 ]; then + # An explicit initrd path was passed, 90-loaderentry.install knows how to handle this; + # copying here would just duplicate the file, since the basename is very likely different + exit 0 +fi + +if [ -e "$INITRD_SRC" ]; then + [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "Installing '$INITRD_SRC' as '$INITRD_DEST'" + install -m 0644 -o root -g root "$INITRD_SRC" "$INITRD_DEST" || { + echo "Could not copy '$INITRD_SRC' to '$INITRD_DEST'." >&2 + exit 1 + } +else + echo "$INITRD_SRC does not exist, not installing an initrd" +fi + +exit 0 |