summaryrefslogtreecommitdiff
path: root/include/inject.sh
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2025-09-13 13:27:47 +0100
committerLeah Rowe <leah@libreboot.org>2025-09-13 13:27:47 +0100
commit995963baf4267e2d6221a5efc210130cfb1c64b7 (patch)
tree0af89063cf01b59dba4e0968d7de19ca7644df72 /include/inject.sh
parent7bed68f5b7096349bc8a6f48d2f4394db7a581af (diff)
xbmk: much more verbose error messages
use the new functionality in err(), whereby a given function name and arguments can be provided, for debugging purposes. something similar was already done in a few places, and replaced with this unified functionality. this patch will make xbmk much easier to debug, under fault conditions. Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include/inject.sh')
-rw-r--r--include/inject.sh27
1 files changed, 15 insertions, 12 deletions
diff --git a/include/inject.sh b/include/inject.sh
index 6f78d8bd..faee8c49 100644
--- a/include/inject.sh
+++ b/include/inject.sh
@@ -19,7 +19,7 @@ inject()
{
remkdir "$tmpromdel"
- [ $# -lt 1 ] && err "No options specified"
+ [ $# -lt 1 ] && err "No options specified" "inject" "$@"
eval "$(setvars "" nuke new_mac xchanged)"
archive="$1";
@@ -31,9 +31,10 @@ inject()
nuke="nuke" ;;
setmac)
[ $# -gt 2 ] && new_mac="$3" && \
- [ -z "$new_mac" ] && err "Empty MAC address specified" ;;
+ [ -z "$new_mac" ] && \
+ err "Empty MAC address specified" "inject" "$@" ;;
*)
- err "Unrecognised inject mode: '$2'" ;;
+ err "Unrecognised inject mode: '$2'" "inject" "$@" ;;
esac
[ "$new_mac" = "keep" ] && new_mac=""
@@ -50,22 +51,23 @@ inject()
check_release()
{
- [ -L "$archive" ] && err "'$archive' is a symlink"
- e "$archive" f missing && err "'$archive' missing"
+ [ -L "$archive" ] && err "'$archive' is a symlink" "check_release" "$@"
+ e "$archive" f missing && err "'$archive' missing" "check_release" "$@"
archivename="$(basename "$archive" || err "Can't get '$archive' name")" \
- || err
- [ -z "$archivename" ] && err "Can't determine archive name"
+ || err "can't get '$archive' name" "check_release" "$@"
+ [ -z "$archivename" ] && \
+ err "Can't determine archive name" "check_release" "$@"
case "$archivename" in
*_src.tar.xz)
- err "'$archive' is a src archive, silly!" ;;
+ err "'$archive' is a src archive!" "check_release" "$@" ;;
grub_*|seagrub_*|custom_*|seauboot_*|seabios_withgrub_*)
- err "'$archive' is a ROM image (it must be a tarball)" ;;
+ err "'$archive' is a ROM image" "check_release" "$@" ;;
*.tar.xz) _stripped_prefix="${archivename#*_}"
board="${_stripped_prefix%.tar.xz}" ;;
*)
- err "'$archive': could not detect board type" ;;
+ err "'$archive': cannot detect board" "check_release" "$@" ;;
esac; :
}
@@ -141,8 +143,9 @@ remktar()
x_ cd "${tmpromdir%"/bin/$board"}"
printf "Re-building tar archive (please wait)\n"
mkrom_tarball "bin/$board" 1>/dev/null
- ) || err "Cannot re-generate '$archive'"
+ ) || err "Cannot re-generate '$archive'" "remktar" "$@"
mv "${tmpromdir%"/bin/$board"}/bin/${relname}_${board}.tar.xz" \
- "$archive" || err "'$archive' -> Can't overwrite"; :
+ "$archive" || \
+ err "'$archive' -> Can't overwrite" "remktar" "$@"; :
}