(zilch nix daemon): use record instead of list for activity information
This commit is contained in:
parent
84207df87d
commit
0c575ca0e4
3 changed files with 35 additions and 20 deletions
|
|
@ -18,7 +18,11 @@
|
|||
*logger*
|
||||
daemon-wop-handshake daemon-wop-set-options
|
||||
daemon-wop-add-text-to-store daemon-wop-build-paths
|
||||
daemon-wop-query-derivation-output-map)
|
||||
daemon-wop-query-derivation-output-map
|
||||
|
||||
<nix-activity> nix-activity?
|
||||
nix-activity-id nix-activity-log-level nix-activity-type
|
||||
nix-activity-string nix-activity-fields nix-activity-parent-id)
|
||||
|
||||
(begin
|
||||
(define-record-type <daemon-link-settings>
|
||||
|
|
@ -63,11 +67,11 @@
|
|||
((eqv? event 'next) (write-string data))
|
||||
((eqv? event 'write) (write-string data))
|
||||
((eqv? event 'error) (error data))
|
||||
((and (eqv? event 'activity-start) (eq? (list-ref data 3) 104)) (set! build-activity (list-ref data 1)))
|
||||
((and (eqv? event 'activity-start) (eq? (list-ref data 3) 105)) (printf "[..building ~S]\n" (vector-ref (list-ref data 5) 0)))
|
||||
((and (eqv? event 'activity-result) (eqv? (list-ref data 2) 101)) (write-string (vector-ref (cadr (cddr data)) 0)) (newline))
|
||||
((and (eqv? event 'activity-result) (eqv? (list-ref data 1) build-activity) (eqv? (list-ref data 2) 105))
|
||||
(let* ((ndata (list-ref data 3)) (done-builds (vector-ref ndata 0)) (total-builds (vector-ref ndata 1)) (running-builds (vector-ref ndata 2)))
|
||||
((and (eqv? event 'activity-start) (eq? (nix-activity-type data) 104)) (set! build-activity (nix-activity-id data)))
|
||||
((and (eqv? event 'activity-start) (eq? (nix-activity-type data) 105)) (printf "[..building ~S]\n" (vector-ref (nix-activity-fields data) 0)))
|
||||
((and (eqv? event 'activity-result) (eqv? (nix-activity-type data) 101)) (write-string (vector-ref (nix-activity-fields data) 0)) (newline))
|
||||
((and (eqv? event 'activity-result) (eqv? (nix-activity-id data) build-activity) (eqv? (nix-activity-type data) 105))
|
||||
(let* ((ndata (nix-activity-fields data)) (done-builds (vector-ref ndata 0)) (total-builds (vector-ref ndata 1)) (running-builds (vector-ref ndata 2)))
|
||||
(printf "[~S/~S builds, ~S running]\n" done-builds total-builds running-builds)))))))
|
||||
|
||||
;; Reads a list of log events until STDERR_LAST is called.
|
||||
|
|
@ -100,6 +104,16 @@
|
|||
(if (> count 0) (read-field fields 0 count))
|
||||
fields)))
|
||||
|
||||
(define-record-type <nix-activity>
|
||||
(make-nix-activity id log-level type string fields parent-id)
|
||||
nix-activity?
|
||||
(id nix-activity-id)
|
||||
(log-level nix-activity-log-level)
|
||||
(type nix-activity-type)
|
||||
(string nix-activity-string)
|
||||
(fields nix-activity-fields)
|
||||
(parent-id nix-activity-parent-id))
|
||||
|
||||
;; Read an activity-start object from the provided <daemon-link>.
|
||||
(define (daemon-read-activity-start link)
|
||||
(define act (daemon-read-u64 link))
|
||||
|
|
@ -108,14 +122,14 @@
|
|||
(define s (daemon-read-string link))
|
||||
(define fields (daemon-read-activity-fields link))
|
||||
(define parent (daemon-read-u64 link))
|
||||
`(activity-start ,act ,lvl ,typ ,s ,fields ,parent))
|
||||
(make-nix-activity act lvl typ s fields parent))
|
||||
|
||||
;; Read an activity-result object from the provided <daemon-link>.
|
||||
(define (daemon-read-activity-result link)
|
||||
(define act (daemon-read-u64 link))
|
||||
(define typ (daemon-read-u64 link))
|
||||
(define fields (daemon-read-activity-fields link))
|
||||
`(activity-result ,act ,typ ,fields))
|
||||
(make-nix-activity act #f typ #f fields #f))
|
||||
|
||||
;; Read an Error object from the provided <daemon-link>.
|
||||
(define (daemon-read-error link)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue