[kexec-tools/f19] mkdumprd: add function perror_exit
Baoquan He
baoquan at fedoraproject.org
Tue Apr 2 02:54:16 UTC 2013
commit 538ef1fef3df4950c69ba903136efbf5db110e5a
Author: Baoquan He <bhe at redhat.com>
Date: Mon Mar 25 17:04:22 2013 +0800
mkdumprd: add function perror_exit
We use function to pass stdout to a variable, like get_persistent_dev
but it will echo some error message and exit in some cases, instead of
redirect all the echo to stderr, this patch adds a function perror_exit
to fix this and simplify/cleanup related code.
Also add another function perror() for cases where no need to exit.
Signed-off-by: Dave Young <dyoung at redhat.com>
Signed-off-by: Baoquan He <bhe at redhat.com>
Acked-by: Vivek Goyal <vgoyal at redhat.com>
mkdumprd | 47 ++++++++++++++++++++++-------------------------
1 files changed, 22 insertions(+), 25 deletions(-)
---
diff --git a/mkdumprd b/mkdumprd
index 21ed384..b925c09 100644
--- a/mkdumprd
+++ b/mkdumprd
@@ -15,13 +15,21 @@ SAVE_PATH=$(grep ^path $conf_file| cut -d' ' -f2)
extra_modules=""
dracut_args=("--hostonly" "-o" "plymouth dash")
+perror_exit() {
+ echo $@ >&2
+ exit 1
+}
+
+perror() {
+ echo $@ >&2
+}
+
get_persistent_dev() {
local i _tmp _dev
_dev=$(udevadm info --query=name --name="$1" 2>/dev/null)
[ -z "$_dev" ] && {
- echo "Kernel dev name of $1 is not found."
- exit 1
+ perror_exit "Kernel dev name of $1 is not found."
}
for i in /dev/mapper/* /dev/disk/by-uuid/* /dev/disk/by-id/*; do
@@ -32,8 +40,7 @@ get_persistent_dev() {
fi
done
- echo "Persistent device name of $1 is not found."
- exit 1
+ perror_exit "Persistent device name of $1 is not found."
}
add_dracut_arg() {
@@ -103,10 +110,9 @@ get_ssh_size() {
local _opt _out _size
_opt="-i $SSH_KEY_LOCATION -o BatchMode=yes -o StrictHostKeyChecking=yes"
_out=$(ssh -q -n $_opt $1 "df -P $SAVE_PATH")
- if [ $? -ne 0 ]; then
- echo "checking remote ssh server available size failed."
- exit 1
- fi
+ [ $? -ne 0 ] && {
+ perror_exit "checking remote ssh server available size failed."
+ }
#ssh output removed the line break, so print $11 instead of $4
_size=$(echo -n $_out|tail -1 | awk '{print $11}')
echo -n $_size
@@ -123,10 +129,8 @@ mkdir_save_path() {
[ ! -d ${_mnt}/$SAVE_PATH ] && {
if is_readonly_mount $1; then
echo "Mounting $1 as read-write for creating dump directory.."
- mount -o remount,rw $1
- [ $? -ne 0 ] && {
- echo "Mounting $1 as read-write failed."
- exit 1;
+ mount -o remount,rw $1 || {
+ perror_exit "Mounting $1 as read-write failed."
}
_remount="yes"
fi
@@ -135,13 +139,11 @@ mkdir_save_path() {
[ "$_remount" = "yes" ] && {
echo "Remounting $1 as read-only."
mount -o remount,ro $1 || {
- echo "Remounting $1 as read-only failed."
- exit 1
+ perror_exit "Remounting $1 as read-only failed."
}
}
[ $_ret -ne 0 ] && {
- echo "Creating ${_mnt}/$SAVE_PATH failed."
- exit 1
+ perror_exit "Creating ${_mnt}/$SAVE_PATH failed."
}
}
}
@@ -204,8 +206,7 @@ verify_core_collector() {
if is_ssh_dump_target || is_raw_dump_target; then
if [ "${1%% *}" = "makedumpfile" ]; then
! strstr "$1" "-F" && {
- echo "The specified dump target needs makedumpfile \"-F\" option."
- exit 1
+ perror_exit "The specified dump target needs makedumpfile \"-F\" option."
}
fi
fi
@@ -237,8 +238,7 @@ do
;;
ext[234]|xfs|btrfs|minix|nfs)
if ! findmnt $config_val >/dev/null; then
- echo "Dump target $config_val is probably not mounted."
- exit 1
+ perror_exit "Dump target $config_val is probably not mounted."
fi
if [ "$config_opt" = "nfs" ]; then
@@ -251,8 +251,7 @@ do
raw)
#checking raw disk writable
dd if=$config_val count=1 of=/dev/null > /dev/null 2>&1 || {
- echo "Bad raw disk $config_val"
- exit 1
+ perror_exit "Bad raw disk $config_val"
}
add_dracut_arg "--device" "$(get_persistent_dev $config_val)"
check_size raw $config_val
@@ -264,8 +263,7 @@ do
add_dracut_module "ssh-client"
add_dracut_sshkey "$SSH_KEY_LOCATION"
else
- echo "Bad ssh dump target $config_val"
- exit 1
+ perror_exit "Bad ssh dump target $config_val"
fi
;;
core_collector)
@@ -289,4 +287,3 @@ dracut "${dracut_args[@]}" -M "$@"
_rc=$?
sync
exit $_rc
-
More information about the scm-commits
mailing list