[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#45409] [PATCH v5 12/14] substitute: Inline fetch in to process-subs
From: |
Christopher Baines |
Subject: |
[bug#45409] [PATCH v5 12/14] substitute: Inline fetch in to process-substitutes. |
Date: |
Sat, 13 Feb 2021 13:47:17 +0000 |
As it's only called in one place, and this should make the code easier to
read.
* guix/scripts/substitute.scm (fetch): Move procedure inside…
(process-substitution): …here.
---
guix/scripts/substitute.scm | 60 ++++++++++++++++++-------------------
1 file changed, 29 insertions(+), 31 deletions(-)
diff --git a/guix/scripts/substitute.scm b/guix/scripts/substitute.scm
index 26fd05429f..717c232633 100755
--- a/guix/scripts/substitute.scm
+++ b/guix/scripts/substitute.scm
@@ -169,37 +169,6 @@ again."
(sigaction SIGALRM SIG_DFL)
(apply values result)))))
-(define (fetch uri)
- "Return a binary input port to URI and the number of bytes it's expected to
-provide."
- (case (uri-scheme uri)
- ((file)
- (let ((port (open-file (uri-path uri) "r0b")))
- (values port (stat:size (stat port)))))
- ((http https)
- (guard (c ((http-get-error? c)
- (leave (G_ "download from '~a' failed: ~a, ~s~%")
- (uri->string (http-get-error-uri c))
- (http-get-error-code c)
- (http-get-error-reason c))))
- ;; Test this with:
- ;; sudo tc qdisc add dev eth0 root netem delay 1500ms
- ;; and then cancel with:
- ;; sudo tc qdisc del dev eth0 root
- (with-timeout %fetch-timeout
- (begin
- (warning (G_ "while fetching ~a: server is somewhat slow~%")
- (uri->string uri))
- (warning (G_ "try `--no-substitutes' if the problem persists~%")))
- (http-fetch uri #:text? #f
- #:open-connection open-connection-for-uri/maybe
- #:keep-alive? #t
- #:buffered? #f
- #:verify-certificate? #f))))
- (else
- (leave (G_ "unsupported substitute URI scheme: ~a~%")
- (uri->string uri)))))
-
(define (narinfo-cache-file cache-url path)
"Return the name of the local file that contains an entry for PATH. The
entry is stored in a sub-directory specific to CACHE-URL."
@@ -706,6 +675,35 @@ the current output port."
(apply dump-file/deduplicate
(append args (list #:store (%store-prefix)))))
+ (define (fetch uri)
+ (case (uri-scheme uri)
+ ((file)
+ (let ((port (open-file (uri-path uri) "r0b")))
+ (values port (stat:size (stat port)))))
+ ((http https)
+ (guard (c ((http-get-error? c)
+ (leave (G_ "download from '~a' failed: ~a, ~s~%")
+ (uri->string (http-get-error-uri c))
+ (http-get-error-code c)
+ (http-get-error-reason c))))
+ ;; Test this with:
+ ;; sudo tc qdisc add dev eth0 root netem delay 1500ms
+ ;; and then cancel with:
+ ;; sudo tc qdisc del dev eth0 root
+ (with-timeout %fetch-timeout
+ (begin
+ (warning (G_ "while fetching ~a: server is somewhat slow~%")
+ (uri->string uri))
+ (warning (G_ "try `--no-substitutes' if the problem persists~%")))
+ (http-fetch uri #:text? #f
+ #:open-connection open-connection-for-uri/maybe
+ #:keep-alive? #t
+ #:buffered? #f
+ #:verify-certificate? #f))))
+ (else
+ (leave (G_ "unsupported substitute URI scheme: ~a~%")
+ (uri->string uri)))))
+
(unless narinfo
(leave (G_ "no valid substitute for '~a'~%")
store-item))
--
2.30.0
- [bug#45409] [PATCH v5 01/14] substitute: Remove buffer handling from fetch., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 02/14] substitute: Remove connection handling from fetch., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 08/14] http-client: Accept #:open-connection in http-fetch., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 05/14] http-client: Add error handling to http-multiple-get., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 12/14] substitute: Inline fetch in to process-substitutes.,
Christopher Baines <=
- [bug#45409] [PATCH v5 14/14] substitute: Rework connection error handling., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 10/14] substitute: Remove now redundant connection caching helpers., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 06/14] substitute: open-connection-for-uri/maybe add #:verify-certificate?., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 07/14] substitute: Stop using call-with-cached-connection in fetch-narinfos., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 04/14] guix: Move http-multiple-get to (guix http-client)., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 09/14] substitute: Change connection cache handling in process-substitution., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 03/14] substitute: Remove redundant let block from fetch., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 11/14] substitute: Remove redundant fetch arguments., Christopher Baines, 2021/02/13
- [bug#45409] [PATCH v5 13/14] substitute: Remove fetch-narinfos use open-connection-for-uri/maybe., Christopher Baines, 2021/02/13