unified cache file handling for vendorfile/subfile

lib.sh download() is used by subfile handling in git.sh,
e.g. crossgcc tarballs, and also the vendor scripts.

vendor files are cached, but not subfiles for repos.

cache both, under cache/file/, saved with the name equal
to the checksum, so: cache/file/CHECKSUM

also move vendorfiles/app/ to cache/app/ in this change.

Signed-off-by: Leah Rowe <leah@libreboot.org>
audit6
Leah Rowe 2024-07-17 18:15:52 +01:00
parent ef867eccca
commit a9f9de885c
3 changed files with 13 additions and 11 deletions

1
.gitignore vendored
View File

@ -1,5 +1,6 @@
*~ *~
*.o *.o
/cache/
/lbmk.err.log /lbmk.err.log
/repo/ /repo/
/docs/ /docs/

View File

@ -180,18 +180,19 @@ singletree()
download() download()
{ {
dl_fail="y" # 1 url, 2 url backup, 3 destination, 4 checksum cached="cache/file/$4"
vendor_checksum "$4" "$3" 2>/dev/null || dl_fail="n" dl_fail="n" # 1 url, 2 url backup, 3 destination, 4 checksum
vendor_checksum "$4" "$cached" 2>/dev/null && dl_fail="y"
[ "$dl_fail" = "n" ] && e "$3" f && return 0 [ "$dl_fail" = "n" ] && e "$3" f && return 0
x_ mkdir -p "${3%/*}" && for url in "$1" "$2"; do x_ mkdir -p "${3%/*}" cache/file && for url in "$1" "$2"; do
[ "$dl_fail" = "n" ] && break [ "$dl_fail" = "n" ] && break
[ -z "$url" ] && continue [ -z "$url" ] && continue
x_ rm -f "$3" x_ rm -f "$cached"
curl --location --retry 3 -A "$_ua" "$url" -o "$3" || \ curl --location --retry 3 -A "$_ua" "$url" -o "$cached" || \
wget --tries 3 -U "$_ua" "$url" -O "$3" || continue wget --tries 3 -U "$_ua" "$url" -O "$cached" || continue
vendor_checksum "$4" "$3" || dl_fail="n" vendor_checksum "$4" "$cached" || dl_fail="n"
done; done; [ "$dl_fail" = "y" ] && $err "$1 $2 $3 $4: not downloaded"
[ "$dl_fail" = "y" ] && $err "$1 $2 $3 $4: not downloaded"; return 0 [ "$cached" = "$3" ] || cp "$cached" "$3" || $err "!d cp $cached $3"; :
} }
vendor_checksum() vendor_checksum()

View File

@ -8,7 +8,7 @@ me7updateparser="$PWD/util/me7_update_parser/me7_update_parser.py"
pfs_extract="$PWD/src/biosutilities/Dell_PFS_Extract.py" pfs_extract="$PWD/src/biosutilities/Dell_PFS_Extract.py"
uefiextract="$PWD/elf/uefitool/uefiextract" uefiextract="$PWD/elf/uefitool/uefiextract"
vendir="vendorfiles" vendir="vendorfiles"
appdir="$vendir/app" appdir="cache/app"
cbcfgsdir="config/coreboot" cbcfgsdir="config/coreboot"
eval `setvars "" EC_url_bkup EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \ eval `setvars "" EC_url_bkup EC_hash DL_hash DL_url_bkup MRC_refcode_gbe vcfg \
@ -78,7 +78,7 @@ getfiles()
fetch() fetch()
{ {
dl_type="$1"; dl="$2"; dl_bkup="$3"; dlsum="$4"; _dest="${5##*../}" dl_type="$1"; dl="$2"; dl_bkup="$3"; dlsum="$4"; _dest="${5##*../}"
[ "$5" = "/dev/null" ] && return 0; _dl="$vendir/cache/$dlsum" [ "$5" = "/dev/null" ] && return 0; _dl="cache/file/$dlsum"
download "$dl" "$dl_bkup" "$_dl" "$dlsum" download "$dl" "$dl_bkup" "$_dl" "$dlsum"