guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/04: status: Use 'define-immutable-record-type' and its functional set


From: guix-commits
Subject: 02/04: status: Use 'define-immutable-record-type' and its functional setters.
Date: Tue, 5 Feb 2019 06:03:53 -0500 (EST)

civodul pushed a commit to branch master
in repository guix.

commit c7465dcb96e8d35fb992f4e14c4e22251b951a98
Author: Ludovic Courtès <address@hidden>
Date:   Tue Feb 5 10:51:23 2019 +0100

    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.
---
 guix/status.scm | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/guix/status.scm b/guix/status.scm
index bd382ba..070071d 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -30,6 +30,7 @@
   #: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 @@
                        (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 (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 @@ a completion indication."
     (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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]