diff options
Diffstat (limited to 'guix-build-coordinator/coordinator.scm')
-rw-r--r-- | guix-build-coordinator/coordinator.scm | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/guix-build-coordinator/coordinator.scm b/guix-build-coordinator/coordinator.scm index 6983763..62d181b 100644 --- a/guix-build-coordinator/coordinator.scm +++ b/guix-build-coordinator/coordinator.scm @@ -79,12 +79,45 @@ (allocator-thread build-coordinator-allocator-thread set-build-coordinator-allocator-thread!)) +(define %known-hooks + '(build-submitted + build-started + build-success + build-failure + build-missing-inputs)) + (define* (make-build-coordinator #:key datastore hooks (metrics-registry (make-metrics-registry #:namespace "guixbuildcoordinator")) (allocation-strategy basic-build-allocation-strategy)) + (and (or (list? hooks) + (begin + (simple-format + #t "warning: guix-build-coordinator: hooks should be a list\n") + #f)) + (for-each + (match-lambda + ((hook-name . hook) + (unless (member hook-name %known-hooks) + (simple-format + #t "warning: guix-build-coordinator: hook name ~A not recognised + it should be one of: ~A\n" + hook-name + (string-join (map symbol->string %known-hooks) ", "))) + + (unless (procedure? hook) + (simple-format + #t "warning: guix-build-coordinator: hook ~A value is not a procedure ~A\n" + hook-name + hook))) + (unknown + (simple-format + #t "warning: guix-build-coordinator: hooks entry is not a pair: ~A\n" + unknown))) + hooks)) + (let ((build-coordinator (make-build-coordinator-record datastore hooks |