aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2017-10-17 21:13:26 +0000
committerEd Maste <emaste@FreeBSD.org>2017-10-17 21:13:26 +0000
commit0bf94a089dbd5f215259aee174d6d1205e99b9c7 (patch)
treebfb26c7167c268fed968a1af4176897fc7c6ae85
parentb394cd1e28f1a094742434474ebe4f5004bf0ce3 (diff)
downloadsrc-0bf94a089dbd5f215259aee174d6d1205e99b9c7.tar.gz
src-0bf94a089dbd5f215259aee174d6d1205e99b9c7.zip
embed_mfs: add error handling, usage
Ensure that we are called with two arguments, and that the output file is writable. Also, if we cannot find the mfs section report the output file name rather than "kernel", as this script may be used with other than kernels. Sponsored by: The FreeBSD Foundation
Notes
Notes: svn path=/head/; revision=324707
-rw-r--r--sys/tools/embed_mfs.sh11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/tools/embed_mfs.sh b/sys/tools/embed_mfs.sh
index a7ac80c8f8d3..780ad891ae06 100644
--- a/sys/tools/embed_mfs.sh
+++ b/sys/tools/embed_mfs.sh
@@ -32,13 +32,22 @@
# $2: MFS image filename
#
+if [ $# -ne 2 ]; then
+ echo "usage: $(basename $0) target mfs_image"
+ exit 0
+fi
+if [ ! -w "$1" ]; then
+ echo $1 not writable
+ exit 1
+fi
+
mfs_size=`stat -f '%z' $2 2> /dev/null`
# If we can't determine MFS image size - bail.
[ -z ${mfs_size} ] && echo "Can't determine MFS image size" && exit 1
sec_info=`elfdump -c $1 2> /dev/null | grep -A 5 -E "sh_name: oldmfs$"`
# If we can't find the mfs section within the given kernel - bail.
-[ -z "${sec_info}" ] && echo "Can't locate mfs section within kernel" && exit 1
+[ -z "${sec_info}" ] && echo "Can't locate mfs section within $1" && exit 1
sec_size=`echo "${sec_info}" | awk '/sh_size/ {print $2}' 2> /dev/null`
sec_start=`echo "${sec_info}" | awk '/sh_offset/ {print $2}' 2> /dev/null`