aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/utils.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-08-20 13:09:56 +0100
committerChristopher Baines <mail@cbaines.net>2023-08-20 13:09:56 +0100
commitc4008265d4f19adad8827f454556ab0e66075e7d (patch)
treeea6d09ca3952f3f47501d3be6549bb7340c46b8c /guix-build-coordinator/utils.scm
parent1727f4f1be2ad2cd8a6fc3dd19804b8072ca3f8b (diff)
downloadbuild-coordinator-c4008265d4f19adad8827f454556ab0e66075e7d.tar
build-coordinator-c4008265d4f19adad8827f454556ab0e66075e7d.tar.gz
Pass the store in to substitute-derivation
To avoid an additional store connection.
Diffstat (limited to 'guix-build-coordinator/utils.scm')
-rw-r--r--guix-build-coordinator/utils.scm50
1 files changed, 26 insertions, 24 deletions
diff --git a/guix-build-coordinator/utils.scm b/guix-build-coordinator/utils.scm
index 69d5167..9aee736 100644
--- a/guix-build-coordinator/utils.scm
+++ b/guix-build-coordinator/utils.scm
@@ -68,6 +68,8 @@
read-derivation-from-file*
+ with-store/non-blocking
+
substitute-derivation
read-derivation-through-substitutes
@@ -429,32 +431,32 @@ context."
(let ()
exp ...)))
-(define* (substitute-derivation derivation-name
+(define* (substitute-derivation store
+ derivation-name
#:key substitute-urls)
(let ((log-port (open-output-string)))
- (with-store/non-blocking store
- (apply set-build-options
- store
- `(,@(if substitute-urls
- `(#:substitute-urls ,substitute-urls)
- '())
- #:max-silent-time 60
- #:timeout ,(* 10 60)))
-
- (with-exception-handler
- (lambda (exn)
- (let ((log-string
- (get-output-string log-port)))
- (close-output-port log-port)
- (simple-format
- (current-error-port)
- "exception when substituting derivation: ~A:\n ~A\n"
- exn log-string)
- (raise-exception exn)))
- (lambda ()
- (parameterize ((current-build-output-port log-port))
- (ensure-path store derivation-name)))
- #:unwind? #t))))
+ (apply set-build-options
+ store
+ `(,@(if substitute-urls
+ `(#:substitute-urls ,substitute-urls)
+ '())
+ #:max-silent-time 60
+ #:timeout ,(* 10 60)))
+
+ (with-exception-handler
+ (lambda (exn)
+ (let ((log-string
+ (get-output-string log-port)))
+ (close-output-port log-port)
+ (simple-format
+ (current-error-port)
+ "exception when substituting derivation: ~A:\n ~A\n"
+ exn log-string)
+ (raise-exception exn)))
+ (lambda ()
+ (parameterize ((current-build-output-port log-port))
+ (ensure-path store derivation-name)))
+ #:unwind? #t)))
(define read-derivation-from-file*
(let ((%derivation-cache