vendor.sh: tidy up error handling

x_ can be used nowadays on any function, because it
properly handles globbing.

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2025-04-12 22:15:58 +01:00
parent 04ebb3b91a
commit 7af46721bc
+16 -30
View File
@@ -124,8 +124,7 @@ fetch()
rm -Rf "${_dl}_extracted" || $err "!rm ${_ul}_extracted. $dontflash" rm -Rf "${_dl}_extracted" || $err "!rm ${_ul}_extracted. $dontflash"
e "$_dest" f && return 0 e "$_dest" f && return 0
mkdir -p "${_dest%/*}" || \ x_ mkdir -p "${_dest%/*}"
$err "mkdirs: !mkdir -p ${_dest%/*} - $dontflash"
remkdir "$appdir" remkdir "$appdir"
extract_archive "$_dl" "$appdir" "$dl_type" || \ extract_archive "$_dl" "$appdir" "$dl_type" || \
[ "$dl_type" = "e6400vga" ] || \ [ "$dl_type" = "e6400vga" ] || \
@@ -165,8 +164,7 @@ extract_intel_me_bruteforce()
e "$_metmp" f && return 0 e "$_metmp" f && return 0
[ -z "$sdir" ] && sdir="$(mktemp -d)" [ -z "$sdir" ] && sdir="$(mktemp -d)"
mkdir -p "$sdir" || \ x_ mkdir -p "$sdir"
$err "extract_intel_me: !mkdir -p \"$sdir\" - $dontflash"
set +u +e set +u +e
( (
@@ -200,11 +198,10 @@ apply_me11_deguard_mod()
{ {
( (
x_ cd src/deguard/ x_ cd src/deguard/
./finalimage.py --delta "data/delta/$ME11delta" \ x_ ./finalimage.py --delta "data/delta/$ME11delta" \
--version "$ME11version" \ --version "$ME11version" \
--pch "$ME11pch" --sku "$ME11sku" --fake-fpfs data/fpfs/zero \ --pch "$ME11pch" --sku "$ME11sku" --fake-fpfs data/fpfs/zero \
--input "$_metmp" --output "$_me" || \ --input "$_metmp" --output "$_me"
$err "Error running deguard for $_me - $dontflash"
) || $err "Error running deguard for $_me - $dontflash" ) || $err "Error running deguard for $_me - $dontflash"
} }
@@ -272,8 +269,7 @@ extract_e6400vga()
$err "extract_e6400vga: can't extract bios.bin - $dontflash" $err "extract_e6400vga: can't extract bios.bin - $dontflash"
"$e6400_unpack" bios.bin || printf "TODO: fix dell extract util\n" "$e6400_unpack" bios.bin || printf "TODO: fix dell extract util\n"
) || $err "can't extract e6400 vga rom - $dontflosh" ) || $err "can't extract e6400 vga rom - $dontflosh"
cp "$appdir/$E6400_VGA_romname" "$_dest" || \ x_ cp "$appdir/$E6400_VGA_romname" "$_dest"
$err "extract_e6400vga $board: can't cp $_dest - $dontflash"; :
} }
extract_sch5545ec() extract_sch5545ec()
@@ -286,8 +282,7 @@ extract_sch5545ec()
_sch5545ec_fw="$_sch5545ec_fw/0 Raw section/body.bin" # <-- this! _sch5545ec_fw="$_sch5545ec_fw/0 Raw section/body.bin" # <-- this!
"$uefiextract" "$_bios" || $err "sch5545 !extract - $dontflash" "$uefiextract" "$_bios" || $err "sch5545 !extract - $dontflash"
cp "$_sch5545ec_fw" "$_dest" || \ x_ cp "$_sch5545ec_fw" "$_dest"
$err "$_dest: !sch5545 copy - $dontflash"; :
} }
# Lenovo ThunderBolt firmware updates: # Lenovo ThunderBolt firmware updates:
@@ -302,14 +297,11 @@ extract_tbfw()
while read -r f; do while read -r f; do
[ -f "$f" ] || continue [ -f "$f" ] || continue
[ -L "$f" ] && continue [ -L "$f" ] && continue
cp "$f" "tmp/tb.bin" || \ x_ cp "$f" "tmp/tb.bin"
$err "extract_tbfw $_dest: Can't copy TBT.bin - $dontflash"
break break
done < "tmp/tb.txt" done < "tmp/tb.txt"
dd if=/dev/null of=tmp/tb.bin bs=1 seek=$TBFW_size || \ x_ dd if=/dev/null of=tmp/tb.bin bs=1 seek=$TBFW_size
$err "extract_tbfw $_dest: Can't pad TBT.bin - $dontflash" x_ cp "tmp/tb.bin" "$_dest"
cp "tmp/tb.bin" "$_dest" || \
$err "extract_tbfw $_dest: copy error - $dontflash "; :
} }
extract_fspm() extract_fspm()
@@ -325,8 +317,7 @@ extract_fsps()
# this copies the fsp s/m; re-base is handled by ./mk inject # this copies the fsp s/m; re-base is handled by ./mk inject
copy_fsp() copy_fsp()
{ {
cp "$appdir/Fsp_$1.fd" "$_dest" || \ x_ cp "$appdir/Fsp_$1.fd" "$_dest"
$err "copy_fsp: Can't copy $1 to $_dest - $dontflash"; :
} }
fail_inject() fail_inject()
@@ -501,8 +492,7 @@ patch_release_roms()
sha512sum --status -c "$hashfile" || \ sha512sum --status -c "$hashfile" || \
sha1sum --status -c "$hashfile" || \ sha1sum --status -c "$hashfile" || \
$err "'$archive' -> Can't verify vendor hashes. $dontflash" $err "'$archive' -> Can't verify vendor hashes. $dontflash"
rm -f "$hashfile" || \ x_ rm -f "$hashfile"
$err "$archive: Can't rm hashfile. $dontflash"
fi fi
) || $err "'$archive' -> Can't verify vendor hashes. $dontflash" ) || $err "'$archive' -> Can't verify vendor hashes. $dontflash"
@@ -512,8 +502,7 @@ patch_release_roms()
[ "$xchanged" = "y" ] || rm -Rf "$tmpromdel" || : [ "$xchanged" = "y" ] || rm -Rf "$tmpromdel" || :
[ "$xchanged" = "y" ] || return 0 [ "$xchanged" = "y" ] || return 0
( (
cd "${tmpromdir%"/bin/$board"}" || \ x_ cd "${tmpromdir%"/bin/$board"}"
$err "Can't cd '${tmpromdir%"/bin/$board"}'; $dontflash"
mkrom_tarball "bin/$board" mkrom_tarball "bin/$board"
) || $err "Cannot re-generate '$archive' - $dontflash" ) || $err "Cannot re-generate '$archive' - $dontflash"
@@ -536,8 +525,7 @@ process_release_rom()
[ "${_xromname#"$vfix"}" != "$_xromname" ]; then [ "${_xromname#"$vfix"}" != "$_xromname" ]; then
_xromnew="${_xrom%/*}/${_xromname#"$vfix"}" _xromnew="${_xrom%/*}/${_xromname#"$vfix"}"
stat -c '%s' "$_xrom" > "tmp/rom.size" || \ x_ stat -c '%s' "$_xrom" > "tmp/rom.size"
$err "$_xrom: Can't get rom size. $dontflash"
read -r xromsize < "tmp/rom.size" || \ read -r xromsize < "tmp/rom.size" || \
$err "$_xrom: Can't read rom size. $dontflash" $err "$_xrom: Can't read rom size. $dontflash"
@@ -550,8 +538,7 @@ process_release_rom()
[ $xromsize -lt 524288 ] && \ [ $xromsize -lt 524288 ] && \
$err "$_xrom size too small; likely not a rom. $dontflash" $err "$_xrom size too small; likely not a rom. $dontflash"
dd if="$_xrom" of="$_xromnew" bs=$xromsize count=1 || \ x_ dd if="$_xrom" of="$_xromnew" bs=$xromsize count=1
$err "$_xrom: Can't resize. $dontflash"
rm -f "$_xrom" || $err "Can't rm $_xrom - $dontflash" rm -f "$_xrom" || $err "Can't rm $_xrom - $dontflash"
_xrom="$_xromnew" _xrom="$_xromnew"
@@ -566,7 +553,7 @@ process_release_rom()
# Rename the file, prefixing a warning saying not to flash # Rename the file, prefixing a warning saying not to flash
cat "$_xrom" tmp/zero.1b > "${_xrom%/*}/$vfix${_xrom##*/}" || \ cat "$_xrom" tmp/zero.1b > "${_xrom%/*}/$vfix${_xrom##*/}" || \
$err "'$archive' -> can't pad/rename '$_xrom'. $dontflash" $err "'$archive' -> can't pad/rename '$_xrom'. $dontflash"
rm -f "$_xrom" || $err "'$archive' -> can't rm '$_xrom'. $dontflash" x_ rm -f "$_xrom"
} }
patch_rom() patch_rom()
@@ -636,8 +623,7 @@ inject()
xchanged="y" xchanged="y"
return 0 return 0
elif [ "$nukemode" = "nuke" ]; then elif [ "$nukemode" = "nuke" ]; then
"$cbfstool" "$rom" remove -n "$cbfsname" || \ x_ "$cbfstool" "$rom" remove -n "$cbfsname"
$err "inject $rom: can't remove $cbfsname"
xchanged="y" xchanged="y"
return 0 return 0
elif [ "$_t" = "stage" ]; then # the only stage we handle is refcode elif [ "$_t" = "stage" ]; then # the only stage we handle is refcode