diff options
author | Christopher Baines <mail@cbaines.net> | 2023-08-20 13:09:56 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2023-08-20 13:09:56 +0100 |
commit | c4008265d4f19adad8827f454556ab0e66075e7d (patch) | |
tree | ea6d09ca3952f3f47501d3be6549bb7340c46b8c /guix-build-coordinator/utils.scm | |
parent | 1727f4f1be2ad2cd8a6fc3dd19804b8072ca3f8b (diff) | |
download | build-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.scm | 50 |
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 |