summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-11-20 16:42:30 +0100
committerLudovic Courtès <ludo@gnu.org>2018-11-20 16:42:30 +0100
commit27f14634102a73d4252d86b912f67e9ad464be1e (patch)
treeef845a0ffdb04739e2766b317b6b45d6ad03e3ea
parentd0ed3341d7201d0332e9aeb0af80e0ec635aeb1e (diff)
downloadcuirass-27f14634102a73d4252d86b912f67e9ad464be1e.tar
cuirass-27f14634102a73d4252d86b912f67e9ad464be1e.tar.gz
base: Keep going when a Git error is raised.
* src/cuirass/base.scm (process-specs): Catch 'git-error around call to 'process'.
-rw-r--r--src/cuirass/base.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/cuirass/base.scm b/src/cuirass/base.scm
index b321778..c7447fa 100644
--- a/src/cuirass/base.scm
+++ b/src/cuirass/base.scm
@@ -734,4 +734,13 @@ started)."
;; 'spawn-fiber' returns zero values but we need one.
*unspecified*))))
- (for-each process jobspecs))
+ (for-each (lambda (spec)
+ ;; Catch Git errors, which might be transient, and keep going.
+ (catch 'git-error
+ (lambda ()
+ (process spec))
+ (lambda (key error)
+ (log-message "Git error while fetching inputs of '~a': ~s~%"
+ (assq-ref spec #:name)
+ (git-error-message error)))))
+ jobspecs))