aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent.scm
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-04-26 06:42:45 +0100
committerChristopher Baines <mail@cbaines.net>2020-04-26 06:42:45 +0100
commitcea8a56d7ba909a6b15f2a8de3f80e5eb66575d0 (patch)
tree827f28a2cc407a932b5eb3d284dfc28dcb1f57ed /guix-build-coordinator/agent.scm
parentb6373e42752780c5f5e7c6f8ee8d502c33a07646 (diff)
downloadbuild-coordinator-cea8a56d7ba909a6b15f2a8de3f80e5eb66575d0.tar
build-coordinator-cea8a56d7ba909a6b15f2a8de3f80e5eb66575d0.tar.gz
Make it possible to pass in substitute-urls to the agent
So that you don't have to just use the daemon's defaults.
Diffstat (limited to 'guix-build-coordinator/agent.scm')
-rw-r--r--guix-build-coordinator/agent.scm18
1 files changed, 14 insertions, 4 deletions
diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm
index c08f89e..d787cbc 100644
--- a/guix-build-coordinator/agent.scm
+++ b/guix-build-coordinator/agent.scm
@@ -31,7 +31,8 @@
#:use-module (guix-build-coordinator agent-messaging http)
#:export (run-agent))
-(define (run-agent uuid coordinator-uri password)
+(define (run-agent uuid coordinator-uri password
+ substitute-urls)
(while #t
(let* ((details (submit-status coordinator-uri uuid password
'idle))
@@ -50,7 +51,8 @@
(let ((derivation-name (assoc-ref build "derivation-name")))
(simple-format #t "setting up to build: ~A\n"
derivation-name)
- (let ((pre-build-status (pre-build-process derivation-name)))
+ (let ((pre-build-status (pre-build-process substitute-urls
+ derivation-name)))
(if (eq? (assq-ref pre-build-status 'result) 'success)
(let ((result (perform-build derivation-name)))
(and=> (derivation-log-file derivation-name)
@@ -75,7 +77,7 @@
(when (null? builds)
(sleep 5)))))
-(define (pre-build-process derivation-name)
+(define (pre-build-process substitute-urls derivation-name)
(define (find-missing-inputs inputs)
(let* ((output-paths
(append-map derivation-input-output-paths inputs))
@@ -83,6 +85,9 @@
(remove file-exists? output-paths))
(path-substitutes
(with-store store
+ (set-build-options store
+ #:substitute-urls substitute-urls)
+
(map (lambda (file)
(has-substitutes? store file))
missing-paths))))
@@ -98,6 +103,9 @@
(begin
;; Download the substitutes
(with-store store
+ (set-build-options store
+ #:substitute-urls substitute-urls)
+
(build-things store missing-paths))
'()))))
@@ -123,7 +131,9 @@
(let ((derivation
(if (file-exists? derivation-name)
(read-derivation-from-file derivation-name)
- (and (substitute-derivation derivation-name)
+ (and (substitute-derivation derivation-name
+ #:substitute-urls
+ substitute-urls)
(read-derivation-from-file derivation-name)))))
(match (delete-outputs derivation)
(#t