~ruther/guix-local

4c9243b688b4df2310b7fba65ef53e2f52f76bce — Ludovic Courtès 10 years ago 9270298
hydra: 'evaluate' now validates job alists.

* build-aux/hydra/evaluate.scm (assert-valid-job): New procedure.
<top level>: Use it.
1 files changed, 14 insertions(+), 1 deletions(-)

M build-aux/hydra/evaluate.scm
M build-aux/hydra/evaluate.scm => build-aux/hydra/evaluate.scm +14 -1
@@ 49,6 49,17 @@ values."
                 (/ (time-nanosecond time) 1e9)))
      (apply values results))))

(define (assert-valid-job job thing)
  "Raise an error if THING is not an alist with a valid 'derivation' entry.
Otherwise return THING."
  (unless (and (list? thing)
               (and=> (assoc-ref thing 'derivation)
                      (lambda (value)
                        (and (string? value)
                             (string-suffix? ".drv" value)))))
    (error "job did not produce a valid alist" job thing))
  thing)


;; Without further ado...
(match (command-line)


@@ 83,7 94,9 @@ values."
           (map (lambda (job thunk)
                  (format (current-error-port) "evaluating '~a'... " job)
                  (force-output (current-error-port))
                  (cons job (call-with-time-display thunk)))
                  (cons job
                        (assert-valid-job job
                                          (call-with-time-display thunk))))
                names thunks)))
        port))))
  ((command _ ...)