mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-31 14:56:54 +01:00
status: Use 'define-immutable-record-type' and its functional setters.
* guix/status.scm (<build>): Define using 'define-immutable-record-type', and add 'set-build-completion' binding. (update-build)[set-completion]: Remove. Use 'set-build-completion' instead.
This commit is contained in:
parent
f5fdc54d3a
commit
c7465dcb96
1 changed files with 5 additions and 10 deletions
|
@ -30,6 +30,7 @@ (define-module (guix status)
|
|||
#:use-module (guix memoization)
|
||||
#:use-module (srfi srfi-1)
|
||||
#:use-module (srfi srfi-9)
|
||||
#:use-module (srfi srfi-9 gnu)
|
||||
#:use-module (srfi srfi-19)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:use-module (ice-9 regex)
|
||||
|
@ -100,14 +101,15 @@ (define-record-type* <build-status> build-status make-build-status
|
|||
(default '())))
|
||||
|
||||
;; On-going or completed build.
|
||||
(define-record-type <build>
|
||||
(define-immutable-record-type <build>
|
||||
(%build derivation id system log-file completion)
|
||||
build?
|
||||
(derivation build-derivation) ;string (.drv file name)
|
||||
(id build-id) ;#f | integer
|
||||
(system build-system) ;string
|
||||
(log-file build-log-file) ;#f | string
|
||||
(completion build-completion)) ;#f | integer (percentage)
|
||||
(completion build-completion ;#f | integer (percentage)
|
||||
set-build-completion))
|
||||
|
||||
(define* (build derivation system #:key id log-file completion)
|
||||
"Return a new build."
|
||||
|
@ -156,13 +158,6 @@ (define %fraction-line-rx
|
|||
(define (update-build status id line)
|
||||
"Update STATUS based on LINE, a build output line for ID that might contain
|
||||
a completion indication."
|
||||
(define (set-completion b %)
|
||||
(build (build-derivation b)
|
||||
(build-system b)
|
||||
#:id (build-id b)
|
||||
#:log-file (build-log-file b)
|
||||
#:completion %))
|
||||
|
||||
(define (find-build)
|
||||
(find (lambda (build)
|
||||
(and (build-id build)
|
||||
|
@ -173,7 +168,7 @@ (define (update %)
|
|||
(let ((build (find-build)))
|
||||
(build-status
|
||||
(inherit status)
|
||||
(building (cons (set-completion build %)
|
||||
(building (cons (set-build-completion build %)
|
||||
(delq build (build-status-building status)))))))
|
||||
|
||||
(cond ((string-any #\nul line)
|
||||
|
|
Loading…
Reference in a new issue