diff options
author | Harald Hoyer <harald@redhat.com> | 2013-04-30 18:01:47 +0200 |
---|---|---|
committer | Harald Hoyer <harald@redhat.com> | 2013-05-06 16:19:02 +0200 |
commit | 8f51399e75e5d0d0741ecb18c549a57840bd1cc3 (patch) | |
tree | 4212a43fb49a2ca03c94ad9add1cb771c6b6f5d4 /src/kernel-install/kernel-install | |
parent | c95686c6ed1879f959a4eb70249167e297751834 (diff) |
kernel-install: add default install scripts
Do the depmod in the kernel-install hooks, so hooks can produce/install
kernel modules and be part of the depmod.
Also move the basic boot loader entry creation and removal to a
plugin script.
If PRETTY_NAME is not defined in /etc/os-release, fallback to
PRETTY_NAME="Linux $KERNEL_VERSION".
Add documentation for everything in the man page.
Diffstat (limited to 'src/kernel-install/kernel-install')
-rw-r--r-- | src/kernel-install/kernel-install | 68 |
1 files changed, 11 insertions, 57 deletions
diff --git a/src/kernel-install/kernel-install b/src/kernel-install/kernel-install index be4a8e274..fb2ee57b5 100644 --- a/src/kernel-install/kernel-install +++ b/src/kernel-install/kernel-install @@ -58,16 +58,6 @@ COMMAND="$1" KERNEL_VERSION="$2" KERNEL_IMAGE="$3" -if [[ -f /etc/os-release ]]; then - . /etc/os-release -fi - -if ! [[ $ID ]]; then - echo "Could not determine the distribution name from /etc/os-release." >&2 - echo "Please specify ID=... in /etc/os-release. See man:os-release(5)" >&2 - exit 1 -fi - if [[ -f /etc/machine-id ]]; then read MACHINE_ID < /etc/machine-id fi @@ -78,28 +68,12 @@ if ! [[ $MACHINE_ID ]]; then exit 1 fi -if [[ -f /etc/kernel/cmdline ]]; then - readarray -t BOOT_OPTIONS < /etc/kernel/cmdline -fi - -if ! [[ ${BOOT_OPTIONS[*]} ]]; then - readarray -t BOOT_OPTIONS < /proc/cmdline -fi - -if ! [[ $BOOT_OPTIONS ]]; then - echo "Could not determine the kernel command line parameters." >&2 - echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2 - exit 1 -fi - if [[ ! $COMMAND ]] || [[ ! $KERNEL_VERSION ]]; then usage exit 1 fi -BOOT_DIR="/$MACHINE_ID/$KERNEL_VERSION" -BOOT_DIR_ABS="/boot$BOOT_DIR" -LOADER_ENTRY="/boot/loader/entries/$MACHINE_ID-$KERNEL_VERSION.conf" +BOOT_DIR_ABS="/boot/$MACHINE_ID/$KERNEL_VERSION" ret=0 readarray -t PLUGINS < <( @@ -121,41 +95,23 @@ case $COMMAND in } for f in "${PLUGINS[@]}"; do - [[ -x $f ]] && "$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" - ((ret+=$?)) + if [[ -x $f ]]; then + "$f" add "$KERNEL_VERSION" "$BOOT_DIR_ABS" "$KERNEL_IMAGE" + ((ret+=$?)) + fi done - - cp --preserve "$KERNEL_IMAGE" "$BOOT_DIR_ABS/linux" || { - echo "Could not copy '$KERNEL_IMAGE to '$BOOT_DIR_ABS/linux'." >&2 - exit 1 - } - - mkdir -p "${LOADER_ENTRY%/*}" || { - echo "Could not create loader entry directory '${LOADER_ENTRY%/*}'." >&2 - exit 1 - } - - { - echo "title $PRETTY_NAME" - echo "version $KERNEL_VERSION" - echo "machine-id $MACHINE_ID" - echo "options ${BOOT_OPTIONS[*]}" - echo "linux $BOOT_DIR/linux" - [[ -f $BOOT_DIR_ABS/initrd ]] && \ - echo "initrd $BOOT_DIR/initrd" - } > "$LOADER_ENTRY" || { - echo "Could not create loader entry '$LOADER_ENTRY'." >&2 - exit 1 - } ;; remove) for f in "${PLUGINS[@]}"; do - [[ -x $f ]] && "$f" remove "$KERNEL_VERSION" "$BOOT_DIR_ABS" - ((ret+=$?)) + if [[ -x $f ]]; then + "$f" remove "$KERNEL_VERSION" "$BOOT_DIR_ABS" + ((ret+=$?)) + fi done - rm -rf "$LOADER_ENTRY" "$BOOT_DIR_ABS" + rm -rf "$BOOT_DIR_ABS" + ((ret+=$?)) ;; *) @@ -164,6 +120,4 @@ case $COMMAND in ;; esac -((ret+=$?)) - exit $ret |