scripts: never exit 1, always call err instead

this same change has been applied, selectively, to
certain return statements. the general rule is this:
the return statement should only be used to direct
logic within a script, where certain non-errors
states are used to skip certain actions; the exit
command should *never* be used to return non-zero,
except by err(). in so doing, we ensure easier
debugging of the build system

also: strip_rom_image in build/release/roms was
running "continue" when a rom file didn't exist,
despite not being a while/for loop. i make it
return (non-error condition) instead

it's ok for a script to exit 0, where appropriate,
but perhaps a function could also be written for it

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2023-08-23 19:56:01 +01:00
parent 52f3fd359e
commit 4c6c7d1088
10 changed files with 103 additions and 89 deletions
+18 -10
View File
@@ -116,8 +116,10 @@ strip_archive()
romdir=${1}
[ -d coreboot/${tree} ] || \
./fetch_trees coreboot ${tree} || exit 1
./build coreboot utils ${tree} || exit 1
./fetch_trees coreboot ${tree} || \
err "cannot fetch source tree, coreboot/${tree}"
./build coreboot utils ${tree} || \
err "cannot build utils for coreboot/${tree}"
rm -Rf "${romdir}_tmp" # dirty hack, to reduce disk io later
# rather than using /tmp, which might not be tmpfs
@@ -141,30 +143,36 @@ strip_rom_image()
{
romfile=${1}
[ -f "${romfile}" ] || continue
[ -f "${romfile}" ] || return 0
if [ "${CONFIG_HAVE_ME_BIN}" = "y" ]; then
${ifdtool} --nuke me "${romfile}" || exit 1
${ifdtool} --nuke me "${romfile}" || \
err "cannot nuke Intel ME region on file, ${romfile}"
mv "${romfile}" "${romdir}_tmp"/
mv "${romfile}.new" "${romfile}"
fi
if [ "${CONFIG_HAVE_MRC}" = "y" ]; then
${cbfstool} "${romfile}" remove -n mrc.bin || exit 1
${cbfstool} "${romfile}" print
${cbfstool} "${romfile}" remove -n mrc.bin || \
err "cannot remove mrc.bin from file, ${romfile}"
${cbfstool} "${romfile}" print || :
fi
if [ "${CONFIG_KBC1126_FIRMWARE}" = "y" ]; then
${cbfstool} "${romfile}" remove -n ecfw1.bin || exit 1
${cbfstool} "${romfile}" remove -n ecfw2.bin || exit 1
${cbfstool} "${romfile}" remove -n ecfw1.bin || \
err "cannot remove ecfw1.bin from file, ${romfile}"
${cbfstool} "${romfile}" remove -n ecfw2.bin || \
err "cannot remove ecfw2.bin from file, ${romfile}"
fi
[ "${CONFIG_INCLUDE_SMSC_SCH5545_EC_FW}" != "y" ] || \
${cbfstool} "${romfile}" remove -n sch5545_ecfw.bin || exit 1
${cbfstool} "${romfile}" remove -n sch5545_ecfw.bin || \
err "cannot remove sch5545_ecfw.bin from file, ${romfile}"
# TODO: replace this board-specific hack
[ "${target}" != "e6400nvidia_4mb" ] || \
${cbfstool} "${romfile}" remove -n "pci10de,06eb.rom" || exit 1
${cbfstool} "${romfile}" remove -n "pci10de,06eb.rom" || \
err "cannot remove pci10de,06eb.rom from file, ${romfile}"
}
main $@