diff options
Diffstat (limited to 'include/lib.sh')
-rw-r--r-- | include/lib.sh | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/include/lib.sh b/include/lib.sh index 7c4d71ea..6fc3bd1e 100644 --- a/include/lib.sh +++ b/include/lib.sh @@ -4,8 +4,8 @@ # Copyright (c) 2020-2025 Leah Rowe <leah@libreboot.org> # Copyright (c) 2025 Alper Nebi Yasak <alpernebiyasak@gmail.com> -cbfstool="elf/cbfstool/default/cbfstool" -rmodtool="elf/cbfstool/default/rmodtool" +cbfstool="elf/coreboot/default/cbfstool" +rmodtool="elf/coreboot/default/rmodtool" remkdir() { @@ -53,12 +53,10 @@ setvars() fi val="$1" shift 1 - while true; do - [ $# -lt 1 ] && break - _setvars="$1=\"$val\"; $_setvars" + while [ $# -gt 0 ]; do + printf "%s=\"%s\"\n" "$1" "$val" shift 1 done - printf "%s\n" "${_setvars% }" } setcfg() @@ -71,11 +69,9 @@ setcfg() chkvars() { - while true; do - [ $# -lt 1 ] && break + while [ $# -gt 0 ]; do eval "[ -n \"\${$1+x}\" ] || err \"$1 unset\"" - eval "[ -n \"\$$1\" ] || err \"$1 unset\"" - shift 1 + eval "[ -n \"\$$1\" ] || err \"$1 unset\"; shift 1; :" done; : } @@ -99,12 +95,30 @@ findpath() done } +pad_one_byte() +{ + paddedfile="`mktemp`" || err "mktemp pad_one_byte" + x_ cp "$1" "$paddedfile" + cat "$paddedfile" config/data/coreboot/0 > "$1" || err "!pad $1"; : + x_ rm "$paddedfile" +} + +unpad_one_byte() +{ + xromsize="$(expr $(stat -c '%s' "$1") - 1)" || err "!int" + [ $xromsize -lt 524288 ] && err "too small, $xromsize: $1" + + unpaddedfile="`mktemp`" || err "mktemp unpad_one_byte" + x_ dd if="$1" of="$unpaddedfile" bs=$xromsize count=1 + x_ mv "$unpaddedfile" "$1" +} + fx_() { fd="`mktemp`" && x_ rm -f "$fd" && x_ touch "$fd" xx="$1" && shift 1 "$@" 2>/dev/null | sort 1>"$fd" 2>/dev/null || err "FATAL: !sort fx_" - dx_ "$xx" "$fd" || break + dx_ "$xx" "$fd" || : x_ rm -f "$fd" } |