86538ca6e2
Fixed quoting issues found by shellcheck, no feature change. This should fix many errors when there is space in any shell variables, eg. dump target's name/path/id. False positives are marked with "# shellcheck disable=SCXXXX", for example, args are expected to split so it should not be quoted. And replaced some `cut -d ' ' -fX` with `awk '{print $X}'` since cut is fragile, and doesn't work well with any quoted strings that have redundant space. Following quoting related issues are fixed (check the link for example code and what could go wrong): https://github.com/koalaman/shellcheck/wiki/SC2046 https://github.com/koalaman/shellcheck/wiki/SC2053 https://github.com/koalaman/shellcheck/wiki/SC2068 https://github.com/koalaman/shellcheck/wiki/SC2086 https://github.com/koalaman/shellcheck/wiki/SC2206 Signed-off-by: Kairui Song <kasong@redhat.com> Acked-by: Philipp Rudo <prudo@redhat.com>
65 lines
1.7 KiB
Bash
Executable File
65 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
. /etc/sysconfig/kdump
|
|
|
|
KDUMP_KERNEL=""
|
|
KDUMP_INITRD=""
|
|
|
|
check() {
|
|
if [[ ! -f /etc/sysconfig/kdump ]] || [[ ! -f /lib/kdump/kdump-lib.sh ]]\
|
|
|| [[ -n "${IN_KDUMP}" ]]
|
|
then
|
|
return 1
|
|
fi
|
|
return 255
|
|
}
|
|
|
|
depends() {
|
|
echo "base shutdown"
|
|
return 0
|
|
}
|
|
|
|
prepare_kernel_initrd() {
|
|
. /lib/kdump/kdump-lib.sh
|
|
|
|
prepare_kdump_bootinfo
|
|
|
|
# $kernel is a variable from dracut
|
|
if [[ "$KDUMP_KERNELVER" != "$kernel" ]]; then
|
|
dwarn "Using kernel version '$KDUMP_KERNELVER' for early kdump," \
|
|
"but the initramfs is generated for kernel version '$kernel'"
|
|
fi
|
|
}
|
|
|
|
install() {
|
|
prepare_kernel_initrd
|
|
if [[ ! -f "$KDUMP_KERNEL" ]]; then
|
|
derror "Could not find required kernel for earlykdump," \
|
|
"earlykdump will not work!"
|
|
return 1
|
|
fi
|
|
if [[ ! -f "$KDUMP_INITRD" ]]; then
|
|
derror "Could not find required kdump initramfs for earlykdump," \
|
|
"please ensure kdump initramfs is generated first," \
|
|
"earlykdump will not work!"
|
|
return 1
|
|
fi
|
|
|
|
inst_multiple tail find cut dirname hexdump
|
|
inst_simple "/etc/sysconfig/kdump"
|
|
inst_binary "/usr/sbin/kexec"
|
|
inst_binary "/usr/bin/gawk" "/usr/bin/awk"
|
|
inst_binary "/usr/bin/logger" "/usr/bin/logger"
|
|
inst_binary "/usr/bin/printf" "/usr/bin/printf"
|
|
inst_script "/lib/kdump/kdump-lib.sh" "/lib/kdump-lib.sh"
|
|
inst_script "/lib/kdump/kdump-logger.sh" "/lib/kdump-logger.sh"
|
|
inst_hook cmdline 00 "$moddir/early-kdump.sh"
|
|
inst_binary "$KDUMP_KERNEL"
|
|
inst_binary "$KDUMP_INITRD"
|
|
|
|
ln_r "$KDUMP_KERNEL" "/boot/kernel-earlykdump"
|
|
ln_r "$KDUMP_INITRD" "/boot/initramfs-earlykdump"
|
|
|
|
chmod -x "${initdir}/$KDUMP_KERNEL"
|
|
}
|