aboutsummaryrefslogtreecommitdiff
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
guix-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