diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-04-19 16:49:46 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-04-19 17:46:40 +0200 |
commit | 04b5ac212f33fc20696fbe43816a1a86aad1a9f2 (patch) | |
tree | 8a7efec688c5de34ba39d47e6feda9513422bd1f | |
parent | 35a09fd9c1aeb1023352b8e29c483b2fa6c4e41a (diff) | |
download | guix-04b5ac212f33fc20696fbe43816a1a86aad1a9f2.tar guix-04b5ac212f33fc20696fbe43816a1a86aad1a9f2.tar.gz |
build: Show completion percentage while building.
* build-aux/compile-all.scm (%): New procedure.
(command-line): Use it to report completion.
-rw-r--r-- | build-aux/compile-all.scm | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/build-aux/compile-all.scm b/build-aux/compile-all.scm index d2afbdab02..4259ea523c 100644 --- a/build-aux/compile-all.scm +++ b/build-aux/compile-all.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> -;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016, 2017, 2019 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,7 +17,8 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. -(use-modules (ice-9 match) +(use-modules (ice-9 format) + (ice-9 match) (ice-9 threads) (srfi srfi-1) (guix build compile) @@ -78,6 +79,10 @@ to 'make'." (current-processor-count)))) (loop tail))))))))) +(define (% completed total) + "Return the completion percentage of COMPLETED over TOTAL as an integer." + (inexact->exact (round (* 100. (/ completed total))))) + ;; Install a SIGINT handler to give unwind handlers in 'compile-file' an ;; opportunity to run upon SIGINT and to remove temporary output files. (sigaction SIGINT @@ -92,10 +97,14 @@ to 'make'." #:host host #:report-load (lambda (file total completed) (when file - (format #t " LOAD ~a~%" file) + (format #t "[~3d%] LOAD ~a~%" + (% (+ 1 completed) (* 2 total)) + file) (force-output))) #:report-compilation (lambda (file total completed) (when file - (format #t " GUILEC ~a~%" + (format #t "[~3d%] GUILEC ~a~%" + (% (+ total completed 1) + (* 2 total)) (scm->go file)) (force-output)))))) |