diff options
Diffstat (limited to 'bffe.scm')
-rw-r--r-- | bffe.scm | 50 |
1 files changed, 28 insertions, 22 deletions
@@ -17,6 +17,7 @@ ;;; <http://www.gnu.org/licenses/>. (define-module (bffe) + #:use-module (srfi srfi-1) #:use-module (ice-9 format) #:use-module (oop goops) #:use-module (prometheus) @@ -26,8 +27,7 @@ #:use-module (fibers scheduler) #:use-module (fibers channels) #:use-module (fibers conditions) - #:use-module ((guix-build-coordinator utils fibers) - #:select (call-with-sigint)) + #:use-module (knots) #:use-module (bffe server) #:use-module (bffe manage-builds) #:export (run-bffe-service)) @@ -45,11 +45,14 @@ (port-log (make <port-log> #:port (current-output-port) #:formatter - (lambda (lvl time str) + ;; In guile-lib v0.2.8 onwards, the formatter is + ;; called with more arguments + (lambda args ; lvl, time, str (format #f "~a (~5a): ~a~%" - (strftime "%F %H:%M:%S" (localtime time)) - lvl - str))))) + (strftime "%F %H:%M:%S" (localtime + (second args))) + (first args) + (third args)))))) (setvbuf (current-output-port) 'line) @@ -57,20 +60,23 @@ (open-log! lgr) (set-default-logger! lgr) - (let ((finished? (make-condition))) - (call-with-sigint - (lambda () - (run-fibers - (lambda () - (for-each start-submit-builds-fibers - build) + (with-fluids ((%file-port-name-canonicalization 'none)) + (let ((finished? (make-condition))) + (call-with-sigint + (lambda () + (run-fibers + (lambda () + (for-each + (lambda (spec) + (start-submit-builds-fibers metrics-registry spec)) + build) - (when web-server-args - (apply start-bffe-web-server - `(,@web-server-args - #:pid-file ,pid-file - #:metrics-registry ,metrics-registry))) - (wait finished?)) - #:hz 0 - #:parallelism 1)) - finished?)))) + (when web-server-args + (apply start-bffe-web-server + `(,@web-server-args + #:pid-file ,pid-file + #:metrics-registry ,metrics-registry))) + (wait finished?)) + #:hz 0 + #:parallelism 1)) + finished?))))) |