summaryrefslogtreecommitdiffstats
path: root/debian/extra/kernel-install.d/85-initrd.install
blob: 4f8b10148d09eca369636f9d1542647e20b34364 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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