[bug#34228,4/5] self: Produce progress reports compatible with (guix status).

Message ID 20190127222620.26034-4-ludo@gnu.org
State Accepted
Commit 35dcaa119e2b24343e76aa2a4213a3cc1fb69049
Headers show
Series [bug#34228,1/5] status: Record more information about builds. | expand

Checks

Context Check Description
cbaines/applying patch fail Apply failed
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied
cbaines/applying patch success Successfully applied

Commit Message

Ludovic Courtès Jan. 27, 2019, 10:26 p.m. UTC
* guix/self.scm (compiled-modules)[build](report-load)
(report-compilation): Write "[M/N]" progress reports.
Use line-buffering.
---
 guix/self.scm | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

Patch

diff --git a/guix/self.scm b/guix/self.scm
index d1b8256802..f028bdbfdd 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -856,13 +856,23 @@  containing MODULE-FILES and possibly other files as well."
           (define (report-load file total completed)
             (display #\cr)
             (format #t
-                    "loading...\t~5,1f% of ~d files" ;FIXME: i18n
+                    "[~3@a/~3@a] loading...\t~5,1f% of ~d files"
+
+                    ;; Note: Multiply TOTAL by two to account for the
+                    ;; compilation phase that follows.
+                    completed (* total 2)
+
                     (* 100. (/ completed total)) total)
             (force-output))
 
           (define (report-compilation file total completed)
             (display #\cr)
-            (format #t "compiling...\t~5,1f% of ~d files" ;FIXME: i18n
+            (format #t "[~3@a/~3@a] compiling...\t~5,1f% of ~d files"
+
+                    ;; Add TOTAL to account for the load phase that came
+                    ;; before.
+                    (+ total completed) (* total 2)
+
                     (* 100. (/ completed total)) total)
             (force-output))
 
@@ -874,8 +884,8 @@  containing MODULE-FILES and possibly other files as well."
                              #:report-load report-load
                              #:report-compilation report-compilation)))
 
-          (setvbuf (current-output-port) 'none)
-          (setvbuf (current-error-port) 'none)
+          (setvbuf (current-output-port) 'line)
+          (setvbuf (current-error-port) 'line)
 
           (set! %load-path (cons #+module-tree %load-path))
           (set! %load-path