include/blobutil: try curl first, then wget

Don't use only wget. Some systems may only have curl.

The user can always install wget anyway, but why not
support both? I've added the right user agent string.

Signed-off-by: Leah Rowe <leah@libreboot.org>
btrfsvols
Leah Rowe 2023-09-29 23:03:45 +01:00
parent 6519cea9cf
commit 416704fb4e
2 changed files with 13 additions and 12 deletions

View File

@ -1,7 +1,7 @@
# SPDX-License-Identifier: GPL-3.0-only
# SPDX-FileCopyrightText: 2023 Leah Rowe <leah@libreboot.org>
agent="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
_ua="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
_7ztest="a"
_b=""
@ -30,7 +30,7 @@ for x in EC_url_bkup EC_hash DL_hash DL_url DL_url_bkup E6400_VGA_DL_hash \
setvars="${setvars}; ${x}=\"\""
done
for x in archive rom board modifygbe new_mac release releasearchive dl_path; do
for x in archive rom board modifygbe new_mac release releasearchive _dl; do
setvars="${setvars}; ${x}=\"\""
done
@ -62,24 +62,25 @@ fetch()
[ "${5# }" = "${5}" ] || err "fetch: space not allowed in _dest: '${5}'"
[ "${5#/}" = "${5}" ] || err "fetch: absolute path not allowed: '${5}'"
_dest="${5##*../}"
dl_path="${blobdir}/cache/${dlsum}"
_dl="${blobdir}/cache/${dlsum}"
mkdir -p "${dl_path%/*}" || err "fetch: !mkdir ${dl_path%/*}"
mkdir -p "${_dl%/*}" || err "fetch: !mkdir ${_dl%/*}"
dl_fail="y"
vendor_checksum "${dlsum}" "${dl_path}" && dl_fail="n"
vendor_checksum "${dlsum}" "${_dl}" && dl_fail="n"
for url in "${dl}" "${dl_bkup}"; do
[ "${dl_fail}" = "n" ] && break
[ -z "${url}" ] && continue
rm -f "${dl_path}" || err "fetch: !rm -f ${dl_path}"
wget --tries 3 -U "${agent}" "${url}" -O "${dl_path}" || \
rm -f "${_dl}" || err "fetch: !rm -f ${_dl}"
curl --location --retry 3 -A "${_ua}" "${url}" -o "${_dl}" || \
wget --tries 3 -U "${_ua}" "${url}" -O "${_dl}" || \
continue
vendor_checksum "${dlsum}" "${dl_path}" && dl_fail="n"
vendor_checksum "${dlsum}" "${_dl}" && dl_fail="n"
done
[ "${dl_fail}" = "y" ] && \
err "fetch ${dlsum}: matched file unavailable"
rm -Rf "${dl_path}_extracted" || err "!rm ${dl_path}_extracted"
rm -Rf "${_dl}_extracted" || err "!rm ${_dl}_extracted"
mkdirs "${_dest}" "extract_${dl_type}" || return 0
eval "extract_${dl_type}"

View File

@ -154,7 +154,7 @@ extract_e6400vga()
err "extract_e6400vga: E6400 VGA offset not defined"
[ "${E6400_VGA_romname}" = "" ] && \
err "extract_e6400vga: E6400 VGA ROM name not defined"
tail -c +${E6400_VGA_offset} "${dl_path}" | \
tail -c +${E6400_VGA_offset} "${_dl}" | \
gunzip >"${appdir}/bios.bin" || :
(
cd "${appdir}" || err "extract_e6400vga: can't cd ${appdir}"
@ -172,7 +172,7 @@ extract_e6400vga()
extract_sch5545ec()
{
# full system ROM (UEFI), to extract with UEFIExtract:
_bios="${dl_path}_extracted/Firmware"
_bios="${_dl}_extracted/Firmware"
_bios="${_bios}/1 ${dlsum} -- 1 System BIOS vA.28.bin"
# this is the SCH5545 firmware, inside of the extracted UEFI ROM:
_sch5545ec_fw="${_bios}.dump/4 7A9354D9-0468-444A-81CE-0BF617D890DF"
@ -193,7 +193,7 @@ mkdirs()
mkdir -p "${1%/*}" || err "mkdirs ${1} ${2}: !mkdir ${1%/*}"
rm -Rf "${appdir}" || err "mkdirs ${1} ${2}: can't remove ${appdir}"
mkdir -p "${appdir}/" || err "mkdirs ${1} ${2}: !mkdir ${appdir}"
extract_archive "${dl_path}" "${appdir}" || \
extract_archive "${_dl}" "${appdir}" || \
[ "${2}" = "extract_e6400vga" ] || err "mkdirs ${1} ${2}: !extract"
}