From eschwartz at archlinux.org Sun May 24 23:32:38 2020 From: eschwartz at archlinux.org (Eli Schwartz) Date: Sun, 24 May 2020 19:32:38 -0400 Subject: [arch-projects] [devtools] [PATCH] makerepropkg: do fast cache lookups Message-ID: <20200524233238.4120800-1-eschwartz@archlinux.org> 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(+) 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 -- 2.26.2