diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-01-27 18:15:05 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-01-29 12:09:52 +0100 |
commit | 35dcaa119e2b24343e76aa2a4213a3cc1fb69049 (patch) | |
tree | 363556a440f5795f47f5907d43f948cc5d8931f5 | |
parent | 3854c6429c648df5b5ab23f871de9ec3c466f61b (diff) | |
download | guix-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.scm | 18 |
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 |