blobs/download: greatly simplify sources handling

remove the giant case/esac list, and set variables directly.

Signed-off-by: Leah Rowe <leah@libreboot.org>
This commit is contained in:
Leah Rowe
2023-09-27 16:10:48 +01:00
parent 65a3269835
commit d023327f98
2 changed files with 27 additions and 71 deletions
+4 -4
View File
@@ -9,10 +9,10 @@ _b=""
blobdir="blobs" blobdir="blobs"
appdir="${blobdir}/app" appdir="${blobdir}/app"
for x in ec_url ec_url_bkup ec_hash dl_hash dl_url dl_url_bkup dl_path \ for x in EC_url EC_url_bkup EC_hash DL_hash DL_url DL_url_bkup dl_path \
e6400_vga_dl_hash e6400_vga_dl_url e6400_vga_dl_url_bkup e6400_vga_offset \ E6400_VGA_DL_hash E6400_VGA_DL_url E6400_VGA_DL_url_bkup E6400_VGA_offset \
e6400_vga_romname sch5545ec_dl_url sch5545ec_dl_url_bkup \ E6400_VGA_romname SCH5545EC_DL_url SCH5545EC_DL_url_bkup \
sch5545ec_dl_hash; do SCH5545EC_DL_hash; do
eval "${x}=\"\"" eval "${x}=\"\""
done done
+23 -67
View File
@@ -39,56 +39,12 @@ detect_firmware()
scan_sources_config() scan_sources_config()
{ {
# Shorthand (avoid duplicating configs per flash size) _b=${board%%_*mb} # shorthand to avoid duplicating config per rom size
_b=${board%%_*mb}
awkstr=" /\{.*${_b}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }" awkstr=" /\{.*${_b}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }"
while read -r line ; do while read -r line ; do
case ${line} in set ${line} 1>/dev/null 2>/dev/null
EC_url_bkup*) eval "${1}=\"${2}\""
set ${line} echo "${1}=\"${2}\""
ec_url_bkup=${2} ;;
EC_url*)
set ${line}
ec_url=${2} ;;
EC_hash*)
set ${line}
ec_hash=${2} ;;
DL_hash*)
set ${line}
dl_hash=${2} ;;
DL_url_bkup*)
set ${line}
dl_url_bkup=${2} ;;
DL_url*)
set ${line}
dl_url=${2} ;;
E6400_VGA_DL_hash*)
set ${line}
e6400_vga_dl_hash=${2} ;;
E6400_VGA_DL_url_bkup*)
set ${line}
e6400_vga_dl_url_bkup=${2} ;;
E6400_VGA_DL_url*)
set ${line}
e6400_vga_dl_url=${2} ;;
E6400_VGA_offset*)
set ${line}
e6400_vga_offset=${2} ;;
E6400_VGA_romname*)
set ${line}
e6400_vga_romname=${2} ;;
SCH5545EC_DL_hash*)
set ${line}
sch5545ec_dl_hash=${2} ;;
SCH5545EC_DL_url_bkup*)
set ${line}
sch5545ec_dl_url_bkup=${2} ;;
SCH5545EC_DL_url*)
set ${line}
sch5545ec_dl_url=${2} ;;
esac
done << EOF done << EOF
$(eval "awk '${awkstr}' config/blobs/sources") $(eval "awk '${awkstr}' config/blobs/sources")
EOF EOF
@@ -312,24 +268,24 @@ extract_e6400vga()
cp "${dl_path}" "${appdir}" || \ cp "${dl_path}" "${appdir}" || \
err "extract_e6400vga: can't copy vendor update" err "extract_e6400vga: can't copy vendor update"
[ "${e6400_vga_offset}" = "" ] && \ [ "${E6400_VGA_offset}" = "" ] && \
err "extract_e6400vga: E6400 VGA offset not defined" err "extract_e6400vga: E6400 VGA offset not defined"
[ "${e6400_vga_romname}" = "" ] && \ [ "${E6400_VGA_romname}" = "" ] && \
err "extract_e6400vga: E6400 VGA ROM name not defined" err "extract_e6400vga: E6400 VGA ROM name not defined"
( (
cd "${appdir}" || \ cd "${appdir}" || \
err "extract_e6400vga: can't cd ${appdir}" err "extract_e6400vga: can't cd ${appdir}"
tail -c +${e6400_vga_offset} "${dl_path##*/}" | gunzip > bios.bin || : tail -c +${E6400_VGA_offset} "${dl_path##*/}" | gunzip > bios.bin || :
[ -f "bios.bin" ] || \ [ -f "bios.bin" ] || \
err "extract_e6400vga: can't extract bios.bin from update" err "extract_e6400vga: can't extract bios.bin from update"
"${e6400_unpack}" bios.bin || printf "TODO: fix dell extract util\n" "${e6400_unpack}" bios.bin || printf "TODO: fix dell extract util\n"
[ -f "${e6400_vga_romname}" ] || \ [ -f "${E6400_VGA_romname}" ] || \
err "extract_e6400vga: can't extract vga rom from bios.bin" err "extract_e6400vga: can't extract vga rom from bios.bin"
) )
cp "${appdir}"/"${e6400_vga_romname}" "${_vga_destination}" || \ cp "${appdir}"/"${E6400_VGA_romname}" "${_vga_destination}" || \
err "extract_e6400vga: can't copy vga rom to ${_vga_destination}" err "extract_e6400vga: can't copy vga rom to ${_vga_destination}"
printf "E6400 Nvidia ROM saved to: %s\n" "${_vga_destination}" printf "E6400 Nvidia ROM saved to: %s\n" "${_vga_destination}"
@@ -395,27 +351,27 @@ fetch_update()
dl_bkup="" dl_bkup=""
dlsum="" dlsum=""
if [ "${fw_type}" = "me" ]; then if [ "${fw_type}" = "me" ]; then
dl=${dl_url} dl=${DL_url}
dl_bkup=${dl_url_bkup} dl_bkup=${DL_url_bkup}
dlsum=${dl_hash} dlsum=${DL_hash}
elif [ "${fw_type}" = "ec" ]; then elif [ "${fw_type}" = "ec" ]; then
dl=${ec_url} dl=${EC_url}
dl_bkup=${ec_url_bkup} dl_bkup=${EC_url_bkup}
dlsum=${ec_hash} dlsum=${EC_hash}
elif [ "${fw_type}" = "e6400vga" ]; then elif [ "${fw_type}" = "e6400vga" ]; then
dl=${e6400_vga_dl_url} dl=${E6400_VGA_DL_url}
dl_bkup=${e6400_vga_dl_url_bkup} dl_bkup=${E6400_VGA_DL_url_bkup}
dlsum=${e6400_vga_dl_hash} dlsum=${E6400_VGA_DL_hash}
elif [ "${fw_type}" = "sch5545ec" ]; then elif [ "${fw_type}" = "sch5545ec" ]; then
dl="${sch5545ec_dl_url}" dl="${SCH5545EC_DL_url}"
dl_bkup="${sch5545ec_dl_url_bkup}" dl_bkup="${SCH5545EC_DL_url_bkup}"
dlsum="${sch5545ec_dl_hash}" dlsum="${SCH5545EC_DL_hash}"
else else
err "fetch_update: Unsupported download type: ${fw_type}" err "fetch_update: Unsupported download type: ${fw_type}"
fi fi
[ -z "${dl_url+x}" ] && [ "${fw_type}" != "e6400vga" ] && \ [ -z "${DL_url+x}" ] && [ "${fw_type}" != "e6400vga" ] && \
err "fetch_update ${fw_type}: dl_url unspecified for: ${board}" err "fetch_update ${fw_type}: DL_url unspecified for: ${board}"
dl_path="${blobdir}/cache/${dlsum}" dl_path="${blobdir}/cache/${dlsum}"
mkdir -p "${blobdir}/cache" || err "fetch_update: !mkdir ${blobdir}/cache" mkdir -p "${blobdir}/cache" || err "fetch_update: !mkdir ${blobdir}/cache"