summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-01-27 18:15:05 +0100
committerLudovic Courtès <ludo@gnu.org>2019-01-29 12:09:52 +0100
commit35dcaa119e2b24343e76aa2a4213a3cc1fb69049 (patch)
tree363556a440f5795f47f5907d43f948cc5d8931f5
parent3854c6429c648df5b5ab23f871de9ec3c466f61b (diff)
downloadguix-35dcaa119e2b24343e76aa2a4213a3cc1fb69049.tar.gz
self: Produce progress reports compatible with (guix status).
* guix/self.scm (compiled-modules)[build](report-load)
(report-compilation): Write "[M/N]" progress reports.
Use line-buffering.
-rw-r--r--guix/self.scm18
1 files changed, 14 insertions, 4 deletions
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