offload: Test each machine only once.
authorLudovic Courtès <ludo@gnu.org>
Fri, 9 Dec 2016 22:00:08 +0000 (23:00 +0100)
committerLudovic Courtès <ludo@gnu.org>
Fri, 9 Dec 2016 22:02:02 +0000 (23:02 +0100)
* guix/scripts/offload.scm (check-machine-availability)[build-machine=?]:
New procedure.
Add call to 'delete-duplicates'.

guix/scripts/offload.scm

index f25cc5e..f56220f 100644 (file)
@@ -710,7 +710,14 @@ allowed on MACHINE.  Return +∞ if MACHINE is unreachable."
 
 (define (check-machine-availability machine-file)
   "Check that each machine in MACHINE-FILE is usable as a build machine."
-  (let ((machines (build-machines machine-file)))
+  (define (build-machine=? m1 m2)
+    (and (string=? (build-machine-name m1) (build-machine-name m2))
+         (= (build-machine-port m1) (build-machine-port m2))))
+
+  ;; A given build machine may appear several times (e.g., once for
+  ;; "x86_64-linux" and a second time for "i686-linux"); test them only once.
+  (let ((machines (delete-duplicates (build-machines machine-file)
+                                     build-machine=?)))
     (info (_ "testing ~a build machines defined in '~a'...~%")
           (length machines) machine-file)
     (let* ((names    (map build-machine-name machines))