49 lines
1.4 KiB
Bash
Executable file
49 lines
1.4 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
COMMAND="$1"
|
|
KERNEL_VERSION="$2"
|
|
BOOT_DIR_ABS="$3"
|
|
KERNEL_IMAGE="$4"
|
|
|
|
if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then
|
|
exit 0
|
|
fi
|
|
|
|
MACHINE_ID=$KERNEL_INSTALL_MACHINE_ID
|
|
|
|
# with grub2 always /boot
|
|
BOOT_ROOT="/boot"
|
|
LOADER_ENTRIES="$BOOT_ROOT/loader/entries"
|
|
|
|
[ -d "$LOADER_ENTRIES" ] || exit 0
|
|
|
|
[ "$COMMAND" = "add" ] || exit 0
|
|
|
|
ARCH=`uname -m`
|
|
|
|
pushd "$LOADER_ENTRIES" &> /dev/null
|
|
for f in `basename "$MACHINE_ID"`-*.conf; do
|
|
# Skip non-files and rescue entries
|
|
if [ ! -f "$f" -o "${f: -12}" == "-rescue.conf" ]; then
|
|
continue
|
|
fi
|
|
# Skip boom managed entries
|
|
if [[ "$f" =~ \w*-[0-9a-f]{7,}-.*-.*.conf ]]; then
|
|
continue
|
|
fi
|
|
|
|
if [ "${ARCH:0:4}" = "s390" ]; then
|
|
# On s390(x), the zipl bootloader doesn't support variables,
|
|
# unpatch TuneD variables which could be there from the previous TuneD
|
|
# versions
|
|
grep -q '^\s*options\s\+.*\$tuned_params' "$f" && sed -i '/^\s*options\s\+/ s/\s\+\$tuned_params\b//g' "$f"
|
|
grep -q '^\s*initrd\s\+.*\$tuned_initrd' "$f" && sed -i '/^\s*initrd\s\+/ s/\s\+\$tuned_initrd\b//g' "$f"
|
|
else
|
|
# Not on s390(x), add TuneD variables if they are not there
|
|
grep -q '^\s*options\s\+.*\$tuned_params' "$f" || sed -i '/^\s*options\s\+/ s/\(.*\)/\1 \$tuned_params/' "$f"
|
|
grep -q '^\s*initrd\s\+.*\$tuned_initrd' "$f" || sed -i '/^\s*initrd\s\+/ s/\(.*\)/\1 \$tuned_initrd/' "$f"
|
|
fi
|
|
done
|
|
popd &> /dev/null
|
|
|
|
exit 0
|