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
This commit is contained in:
parent
b394cd1e28
commit
0bf94a089d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=324707
@ -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`
|
||||
|
Loading…
Reference in New Issue
Block a user