From 99c2020d47aea5409212e54d505a8d285057021d Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Sun, 24 May 2020 19:32:38 -0400 Subject: makerepropkg: do fast cache lookups Teach get_pkgfile to call itself in local-only mode and find a cached file no matter what its extension is. Avoids repetitively trying to curl random files, fail with 404 errors, and proceed to discover a cache hit under a different file extension. Signed-off-by: Eli Schwartz --- makerepropkg.in | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'makerepropkg.in') diff --git a/makerepropkg.in b/makerepropkg.in index 62ba5f3..2a8745c 100755 --- a/makerepropkg.in +++ b/makerepropkg.in @@ -57,9 +57,15 @@ parse_buildinfo() { get_pkgfile() { local cdir=${cache_dirs[0]} local pkgfilebase=${1} + local mode=${2} local pkgname=${pkgfilebase%-*-*-*} local pkgfile ext + # try without downloading + if [[ ${mode} != localonly ]] && get_pkgfile "${pkgfilebase}" localonly; then + return 0 + fi + for ext in .zst .xz ''; do pkgfile=${pkgfilebase}.pkg.tar${ext} @@ -72,6 +78,9 @@ get_pkgfile() { for f in "${pkgfile}" "${pkgfile}.sig"; do if [[ ! -f "${cdir}/${f}" ]]; then + if [[ ${mode} = localonly ]]; then + continue 2 + fi msg2 "retrieving '%s'..." "${f}" >&2 curl -Llf -# -o "${cdir}/${f}" "${archiveurl}/${pkgname:0:1}/${pkgname}/${f}" || continue 2 fi -- cgit v1.2.3-70-g09d2