diff options
author | Leah Rowe <leah@libreboot.org> | 2023-09-27 20:59:07 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-09-27 20:59:07 +0100 |
commit | 3b9442f7b2886b84c995c90e25280c1716ffdc78 (patch) | |
tree | 1e960b74703a23e687040bb2831c378a3010691e /script/update/blobs | |
parent | 373c84e47241a4a846ce778d5523c14e5d405562 (diff) |
blobs/download: unified blobdir handling
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'script/update/blobs')
-rwxr-xr-x | script/update/blobs/download | 56 |
1 files changed, 18 insertions, 38 deletions
diff --git a/script/update/blobs/download b/script/update/blobs/download index ac67167d..72c58341 100755 --- a/script/update/blobs/download +++ b/script/update/blobs/download @@ -84,7 +84,7 @@ download_blobs() download_blob_intel_me() { - printf "Downloading neutered ME for board: %s\n" ${board} + printf "Downloading neutered ME for board: %s\n" "${board}" fetch_update "${DL_url}" "${DL_url_bkup}" "${DL_hash}" || return 1 extract_blob_intel_me || return 1 @@ -92,18 +92,10 @@ download_blob_intel_me() extract_blob_intel_me() { - printf "Extracting neutered ME for ${board}\n" + printf "Extracting neutered ME for %s\n" "${board}" _me_destination=${CONFIG_ME_BIN_PATH#../../} - - [ -d "${_me_destination%/*}" ] || \ - mkdir -p "${_me_destination%/*}" || \ - err "extract_blob_intel_me: mkdir ${_me_destination%/*}" - [ -f "${_me_destination}" ] && \ - printf "Intel ME firmware already downloaded\n" 1>&2 && \ - return 0 - - printf "Extracting and stripping Intel ME firmware\n" + mk_blobdir "${_me_destination}" "extract_blob_intel_me" || return 0 mk_appdir "extract_blob_intel_me" bruteforce_extract_blob_intel_me "$(pwd)/${_me_destination}" \ "$(pwd)/${appdir}" || \ @@ -178,15 +170,7 @@ extract_blob_kbc1126_ec() printf "Extracting KBC1126 EC firmware for board: %s\n" ${board} _ec_destination=${CONFIG_KBC1126_FW1#../../} - - [ -d "${_ec_destination%/*}" ] || \ - mkdir -p "${_ec_destination%/*}" || \ - err "extract_blob_kbc1126_ec: !mkdir ${_ec_destination%/*}" - if [ -f "${_ec_destination}" ]; then - printf "KBC1126 EC firmware already downloaded\n" 1>&2 - return 0 - fi - + mk_blobdir "${_ec_destination}" "extract_blob_kbc1126_ec" || return 0 mk_appdir "extract_blob_kbc1126_ec" ( cd "${appdir}/" || \ @@ -233,16 +217,9 @@ extract_e6400vga() printf "Extracting Nvidia VGA ROM for ${board}\n" _vga_destination=${CONFIG_VGA_BIOS_FILE#../../} - - if [ -f "${_vga_destination}" ]; then - printf "extract_e6400vga: vga rom already downloaded\n" 1>&2 - return 0 - fi - [ -d "${_vga_destination%/*}" ] || \ - mkdir -p "${_vga_destination%/*}" || \ - err "extract_e6400vga: can't mkdir ${_vga_destination%/*}" - + mk_blobdir "${_vga_destination}" "extract_e6400vga" || return 0 mk_appdir "extract_e6400vga" + [ "${E6400_VGA_offset}" = "" ] && \ err "extract_e6400vga: E6400 VGA offset not defined" [ "${E6400_VGA_romname}" = "" ] && \ @@ -280,16 +257,10 @@ extract_sch5545ec() printf "Extracting SCH5545 Environment Controller firmware for '%s'\n" \ ${board} - _sch5545ec_destination=${CONFIG_SMSC_SCH5545_EC_FW_FILE#../../} - - [ -f "${_sch5545ec_destination}" ] && \ - printf "sch5545 firmware already downloaded\n" 1>&2 && \ - return 0 - [ -d "${_sch5545ec_destination%/*}" ] || \ - mkdir -p "${_sch5545ec_destination%/*}" || \ - err "extract_sch: can't mkdir ${_sch5545ec_destination%/*}" - rm -Rf "${dl_path}_extracted" || err "!rm ${dl_path}_extracted" + + _sch5545ec_destination=${CONFIG_SMSC_SCH5545_EC_FW_FILE#../../} + mk_blobdir "${_sch5545ec_destination}" "extract_sch5545ec" || return 0 mk_appdir "extract_sch5545ec" # full system ROM (UEFI), to extract with UEFIExtract: @@ -347,6 +318,15 @@ vendor_checksum() fi } +mk_blobdir() +{ + [ -f "${1}" ] && \ + printf "${2} firmware already downloaded\n" 1>&2 && return 1 + if [ ! -d "${1%/*}" ]; then + mkdir -p "${1%/*}" || err "${2}: mkdir ${1%/*}" + fi +} + mk_appdir() { [ ! -d "${appdir}" ] || rm -Rf "${appdir}" || \ |