From patchwork Sun May 24 23:32:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Emil Velikov via arch-projects X-Patchwork-Id: 1651 Return-Path: Delivered-To: patchwork@archlinux.org Received: from apollo.archlinux.org (localhost [127.0.0.1]) by apollo.archlinux.org (Postfix) with ESMTP id AFD6318F7C45D for ; Sun, 24 May 2020 23:33:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on apollo.archlinux.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1, MAILING_LIST_MULTI=-1,RCVD_IN_DNSWL_MED=-2.3,SPF_HELO_NONE=0.001, T_DMARC_POLICY_NONE=0.01 autolearn=ham autolearn_force=no version=3.4.4 X-Spam-BL-Results: [127.0.9.2] Received: from orion.archlinux.org (orion.archlinux.org [IPv6:2a01:4f8:160:6087::1]) by apollo.archlinux.org (Postfix) with ESMTPS for ; Sun, 24 May 2020 23:33:04 +0000 (UTC) Received: from orion.archlinux.org (localhost [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id C311A1C2FEDD39; Sun, 24 May 2020 23:33:02 +0000 (UTC) Received: from luna.archlinux.org (luna.archlinux.org [IPv6:2a01:4f8:160:3033::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: luna) by orion.archlinux.org (Postfix) with ESMTPSA id 87EB01C2FEDD32; Sun, 24 May 2020 23:33:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=orion; t=1590363182; bh=oSpjboElpUAvAIfGo6KNKc/03UFUtBQBuHNcSks5qek=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc; b=wIQWRNo8muCn67OHfhODQsRvjIPoWRCxfcmwlingQyGTbROHZeLydwUD8mRu3FdvQ tvQ2c8PisrHpBiA3KbvlJBC7CBeLAXDwDt20Z88Jz1t2GqCH/31dLJK2lLUjoYfC5U 6rH98COuNEW/puuqV+RR2gycGhp1qv/L7VuxOg+MXGJjNaDsWdGpdgkhJbDv/oWHv9 O1g11adh1L7wtw8aAT0NODNXqklvt2WCZwfwbB7Tt/1jRGKF81KaYwBDg5phFp+mO/ 00c0sfrQPTOLhzaLUHJsPDW+O1f3V0I8rgt4BjTcFAN+hT9Umf4EjHqGPKR3zO1bcM 9P4ah63oso6Cl9aahHle9GSzfGE/9DYAoJIaxhN35WWmrala1W4nQSLucSgsdegOS0 dLLlMxShxyJSNH/9iKFZSwuJoyRdXVS9TmNlvQ1CqVt4BS2/4bVidwr/o8mZ+/rQco yrIMNO+w110YamoVGiAfajzl4If9J2BTLFlrbhplhNpfyMlKbcgmnuC+6nUbPQroJ0 E3MEKtTvpmmarNMP2MzatkOo302tMo5YA2C26sLmgB1HBLRfkdoxST92JWbsLNb3tJ yhy+7w+BXNe652SAy17Zm2xnL2SE5npN/sk+/BRd2XB5aceQBrFxauSgzsfvzuxWWT 5Ryfa9MQltiZqyvOipNtehnI= Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id 5A5DA29CDF; Sun, 24 May 2020 23:33:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=archlinux.org; s=luna2; t=1590363182; bh=oSpjboElpUAvAIfGo6KNKc/03UFUtBQBuHNcSks5qek=; h=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc; b=CH5Va4sdoJdsxTrXJ06rCRvJ8DNF9aNwpb1+HNkFuoDgwQo4H400df0bAWXcCxCB2 ZQ+X8vnMZt9kUGtp+pnoikc7ep8j31ZNps9akoU5kxEpPMjNwIn6fArGqy7E8SJkyy MmG1qPAuzB0ZSHcX0SGHrpSlGTnihX3TJnc77yUTHzCAI/2Npx5EU6QU6q26FOyvqW dt55uzoPnXt+jgb50KBsec2u/+f2cQmPvmMvpwc9ytgg4GgkkFwAJWqoNChvNEuI7n ELGlT/fja9r9NiSIIqIbFvTE1GkO0eAuH5jrn6rNt91zyFC7SQebmY5hA+GaULlcdx 2kNAmjZj8nhqQTKfK04Lg/dHwGSnS/Mbk2dM60dkbovoSy3Sg4kndY+9FzqvZk1Ks5 uX8PWs9fV3Cslw9WQ2ksWQu3La/acoPnOhkKe1fonIxLQtzo2mYw0ZPINKpDfslk32 pGsWrVqoOl0Bq+pmJCpZjqS/KcCIx+kG/MvNYxdV8S7/nmXW5h7p3SnESFfNExF90a 0F3muLZJyDFRlpZ7+sz3u30Qc8Fttt8MHgf0elhm3jnEDQB2htK6vwSEcueRtXYsDq Ax6U8Z4DeNj11AMmrvCYBGP6lvflQGDKzKv/LUNljykMpngThx2fOxD+b0EPWyInev 8HoYPmFdRw+MxhygiQyvnEDY= Received: from luna.archlinux.org (luna.archlinux.org [127.0.0.1]) by luna.archlinux.org (Postfix) with ESMTP id 8092229CDB for ; Sun, 24 May 2020 23:32:58 +0000 (UTC) Received: from orion.archlinux.org (orion.archlinux.org [IPv6:2a01:4f8:160:6087::1]) by luna.archlinux.org (Postfix) with ESMTPS for ; Sun, 24 May 2020 23:32:58 +0000 (UTC) Received: from orion.archlinux.org (localhost [127.0.0.1]) by orion.archlinux.org (Postfix) with ESMTP id C78F91C2FEDD2E; Sun, 24 May 2020 23:32:55 +0000 (UTC) Received: from didactylos.attlocal.net (108-200-163-197.lightspeed.bcvloh.sbcglobal.net [108.200.163.197]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-384) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: eschwartz) by orion.archlinux.org (Postfix) with ESMTPSA id D952B1C2FEDD2D; Sun, 24 May 2020 23:32:54 +0000 (UTC) To: arch-projects@archlinux.org Date: Sun, 24 May 2020 19:32:38 -0400 Message-Id: <20200524233238.4120800-1-eschwartz@archlinux.org> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Subject: [arch-projects] [devtools] [PATCH] makerepropkg: do fast cache lookups X-BeenThere: arch-projects@archlinux.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Arch Linux projects development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Eli Schwartz via arch-projects Reply-To: Arch Linux projects development discussion Cc: Eli Schwartz Errors-To: arch-projects-bounces@archlinux.org Sender: "arch-projects" 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