diff options
author | Leah Rowe <leah@libreboot.org> | 2023-05-14 09:19:44 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-05-14 09:19:44 +0100 |
commit | 1ffb32b78fb144d032ad5805bb9a767707a8922e (patch) | |
tree | 67006ec552c94b6e43f975e2f53ac4be508f7263 /resources/scripts/blobs/extract | |
parent | 423e2033991c5249019510aba1171678d666374b (diff) |
blobutil/extract: top-down logic
Diffstat (limited to 'resources/scripts/blobs/extract')
-rwxr-xr-x | resources/scripts/blobs/extract | 73 |
1 files changed, 44 insertions, 29 deletions
diff --git a/resources/scripts/blobs/extract b/resources/scripts/blobs/extract index a7294f58..eb8fa7f9 100755 --- a/resources/scripts/blobs/extract +++ b/resources/scripts/blobs/extract @@ -5,18 +5,40 @@ # SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org> # SPDX-License-Identifier: GPL-3.0-only -board="${1}" -vendor_rom="${2}" +sname="" +board="" +vendor_rom="" + +main() +{ + sname=${0} + if [ $# -lt 2 ]; then + Fail "Missing arguments (less than two)." + fi -Print_help(){ - printf "Usage: ./blobutil extract {boardname} {path/to/vendor_rom}\n" - printf "Example: ./blobutil extract x230 12mb_flash.bin\n" - printf "\nYou need to specify exactly 2 arguments\n" -} + board="${1}" + vendor_rom="${2}" -Fail(){ - printf "\nERROR: $@\n" - exit 1 + if [ ! -f "${vendor_rom}" ] ; then + Print_help + exit 1 + fi + + if [ ! -d "resources/coreboot/${board}" ]; then + Print_help + printf "build/roms %s: target not defined.\n" \ + "${projectname}" ${board} + exit 1 + fi + + if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then + Print_help + printf "build/roms %s: missing board.cfg.\n" ${board} + exit 1 + fi + + Build_deps + Extract_blobs } Build_deps(){ @@ -44,8 +66,9 @@ Build_deps(){ fi } - Extract_blobs(){ + printf "extracting blobs for %s from %s\n" ${board} ${vendor_rom} + # TODO: find a better way to know which coreboot config to source set -- "resources/coreboot/${board}/config/"* . ${1} 2>/dev/null @@ -83,24 +106,16 @@ Extract_blobs(){ fi } -if [ ! -f "${vendor_rom}" ] ; then - Print_help - exit 1 -fi - -if [ ! -d "resources/coreboot/${board}" ]; then - Print_help - printf "build/roms %s: target not defined. Skipping extraction.\n" \ - "${projectname}" ${board} - exit 1 -fi +Print_help(){ + printf "Usage: ./blobutil extract {boardname} {path/to/vendor_rom}\n" + printf "Example: ./blobutil extract x230 12mb_flash.bin\n" + printf "\nYou need to specify exactly 2 arguments\n" +} -if [ ! -f "resources/coreboot/${board}/board.cfg" ]; then +Fail(){ Print_help - printf "build/roms %s: missing board.cfg. Skipping build.\n" ${board} - exit 1 -fi + printf "\n%s: ERROR: %s\n" ${sname} $@ + exit 1 +} -printf "extracting blobs for ${board} from ${vendor_rom}\n" -Build_deps -Extract_blobs +main $@ |