aboutsummaryrefslogtreecommitdiff
path: root/guix-build-coordinator/agent.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guix-build-coordinator/agent.scm')
-rw-r--r--guix-build-coordinator/agent.scm26
1 files changed, 22 insertions, 4 deletions
diff --git a/guix-build-coordinator/agent.scm b/guix-build-coordinator/agent.scm
index dcee91f..850d378 100644
--- a/guix-build-coordinator/agent.scm
+++ b/guix-build-coordinator/agent.scm
@@ -134,7 +134,7 @@
derivation-substitute-urls
non-derivation-substitute-urls
derivation-name)
- (define (find-missing-inputs inputs)
+ (define (find-missing-inputs derivation inputs)
(let* ((output-paths
(append-map derivation-input-output-paths inputs))
(missing-paths
@@ -194,10 +194,28 @@
(begin
(simple-format
(current-error-port)
- "error: failed to fetch substitutes for: ~A\n"
+ "warning: failed to fetch substitutes for: ~A\n"
missing-files)
- missing-files))))))))
+ (let ((unavailable-outputs
+ (delete-duplicates
+ (append-map
+ (lambda (missing-output)
+ (find-missing-substitutes-for-output
+ non-derivation-substitute-urls
+ missing-output))
+ missing-files))))
+
+ (simple-format
+ (current-error-port)
+ "warning: the following outputs are missing:\n~A\n"
+ (string-join
+ (map (lambda (output)
+ (string-append
+ " - " output))
+ unavailable-outputs)))
+
+ unavailable-outputs)))))))))
(define (delete-outputs derivation)
(let* ((outputs (derivation-outputs derivation))
@@ -234,7 +252,7 @@
(match (delete-outputs derivation)
(#t
(let ((missing-inputs
- (find-missing-inputs (derivation-inputs derivation))))
+ (find-missing-inputs derivation (derivation-inputs derivation))))
(if (null? missing-inputs)
'((result . success))
`((result . failure)