(zilch nix daemon): use record instead of list for activity information

This commit is contained in:
puck 2024-10-09 20:57:10 +00:00
parent 84207df87d
commit 0c575ca0e4
3 changed files with 35 additions and 20 deletions

View file

@ -3,6 +3,7 @@
(scheme base) (scheme write)
(srfi 18) (srfi 128) (srfi 146) (srfi 151) (srfi 152)
(chicken base) (chicken format) (chicken port) (chicken process signal)
(zilch nix daemon)
(zilch magic))
(export
@ -140,26 +141,26 @@
((eqv? event 'next) (bypass-write (string->utf8 (string-copy data 0 (- (string-length data) 1)))))
((eqv? event 'write) (bypass-write (string->utf8 data))) ; TODO(puck): is this ever called?
((eqv? event 'error) (error data))
((and (eqv? event 'activity-start) (eq? (list-ref data 3) 104)) (set! last-builds-activity-id (list-ref data 1)))
((and (eqv? event 'activity-start) (eq? (list-ref data 3) 105))
((and (eqv? event 'activity-start) (eq? (nix-activity-type data) 104)) (set! last-builds-activity-id (nix-activity-id data)))
((and (eqv? event 'activity-start) (eq? (nix-activity-type data) 105))
(set! build-activity-mapping
(mapping-set! build-activity-mapping (list-ref data 1)
(string-drop (string-drop-while (vector-ref (list-ref data 5) 0) (lambda (f) (not (char=? f #\-)))) 1))))
((eqv? event 'activity-start) (set! last-activity-start-id (list-ref data 1)) (set! last-activity-start (list-ref data 4)) (rerender-status-bar))
(mapping-set! build-activity-mapping (nix-activity-id data)
(string-drop (string-drop-while (vector-ref (nix-activity-fields data) 0) (lambda (f) (not (char=? f #\-)))) 1))))
((eqv? event 'activity-start) (set! last-activity-start-id (nix-activity-id data)) (set! last-activity-start (nix-activity-string data)) (rerender-status-bar))
((eqv? event 'activity-stop)
(set! build-activity-mapping (mapping-delete! build-activity-mapping data)))
((and (eqv? event 'activity-result) (eqv? (list-ref data 2) 101))
(let ((drv-name (mapping-ref/default build-activity-mapping (list-ref data 1) #f)))
((and (eqv? event 'activity-result) (eqv? (nix-activity-type data) 101))
(let ((drv-name (mapping-ref/default build-activity-mapping (nix-activity-id data) #f)))
(when drv-name
(let ((msg (string-append drv-name "> " (vector-ref (list-ref data 3) 0))))
(let ((msg (string-append drv-name "> " (vector-ref (nix-activity-fields data) 0))))
(mutex-lock! out-mutex)
(set! last-activity-start msg)
(set! last-activity-start-id (list-ref data 1))
(set! last-activity-start-id (nix-activity-id data))
(mutex-unlock! out-mutex)
(when print-logs
(bypass-write (string->utf8 msg)))))))
((and (eqv? event 'activity-result) (eqv? (list-ref data 1) last-builds-activity-id))
(set! last-builds-activity-data (list-ref data 3))
((and (eqv? event 'activity-result) (eqv? (nix-activity-id data) last-builds-activity-id))
(set! last-builds-activity-data (nix-activity-fields data))
(rerender-status-bar))))
(thread-start! redraw-thread)
(thread-start! terminal-width-thread)