diff options
-rw-r--r-- | guix-build-coordinator/agent.scm | 24 | ||||
-rw-r--r-- | scripts/guix-build-coordinator-agent.in | 15 |
2 files changed, 30 insertions, 9 deletions
diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm index 37ef5ba..4685863 100644 --- a/guix-build-coordinator/agent.scm +++ b/guix-build-coordinator/agent.scm @@ -33,7 +33,8 @@ #:export (run-agent)) (define (run-agent uuid coordinator-uri password - substitute-urls) + derivation-substitute-urls + non-derivation-substitute-urls) (while #t (let* ((details (submit-status coordinator-uri uuid password 'idle)) @@ -52,8 +53,10 @@ (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 substitute-urls - derivation-name))) + (let ((pre-build-status (pre-build-process + derivation-substitute-urls + non-derivation-substitute-urls + derivation-name))) (if (eq? (assq-ref pre-build-status 'result) 'success) (begin (simple-format #t "setup successful, building: ~A\n" @@ -83,7 +86,9 @@ (when (null? builds) (sleep 5))))) -(define (pre-build-process substitute-urls derivation-name) +(define (pre-build-process derivation-substitute-urls + non-derivation-substitute-urls + derivation-name) (define (find-missing-inputs inputs) (let* ((output-paths (append-map derivation-input-output-paths inputs)) @@ -91,11 +96,13 @@ (remove file-exists? output-paths)) (path-substitutes (with-store store - (set-build-options store #:substitute-urls substitute-urls) + (set-build-options store #:substitute-urls + non-derivation-substitute-urls) (map (lambda (file) (and - (has-substiutes-no-cache? substitute-urls file) + (has-substiutes-no-cache? non-derivation-substitute-urls + file) (if (has-substitutes? store file) #t (begin @@ -119,7 +126,8 @@ ;; Download the substitutes (with-store store (set-build-options store - #:substitute-urls substitute-urls) + #:substitute-urls + non-derivation-substitute-urls) (build-things store missing-paths)) @@ -160,7 +168,7 @@ (lambda () (substitute-derivation derivation-name #:substitute-urls - substitute-urls)) + derivation-substitute-urls)) #:times 12 #:delay 20) (read-derivation-from-file derivation-name))))) diff --git a/scripts/guix-build-coordinator-agent.in b/scripts/guix-build-coordinator-agent.in index 89bd375..d75b66c 100644 --- a/scripts/guix-build-coordinator-agent.in +++ b/scripts/guix-build-coordinator-agent.in @@ -47,6 +47,16 @@ (lambda (opt name arg result) (alist-cons 'substitute-urls (string-split arg #\space) + result))) + (option '("derivation-substitute-urls") #t #f + (lambda (opt name arg result) + (alist-cons 'derivation-substitute-urls + (string-split arg #\space) + result))) + (option '("non-derivation-substitute-urls") #t #f + (lambda (opt name arg result) + (alist-cons 'non-derivation-substitute-urls + (string-split arg #\space) result))))) (define %option-defaults @@ -71,4 +81,7 @@ (run-agent (assq-ref opts 'uuid) (assq-ref opts 'coordinator) (assq-ref opts 'password) - (assq-ref opts 'substitute-urls))) + (or (assq-ref opts 'derivation-substitute-urls) + (assq-ref opts 'substitute-urls)) + (or (assq-ref opts 'non-derivation-substitute-urls) + (assq-ref opts 'substitute-urls)))) |