From 04b5ac212f33fc20696fbe43816a1a86aad1a9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Fri, 19 Apr 2019 16:49:46 +0200 Subject: [PATCH] build: Show completion percentage while building. * build-aux/compile-all.scm (%): New procedure. (command-line): Use it to report completion. --- build-aux/compile-all.scm | 17 +++++++++++++---- 1 file 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 -;;; Copyright © 2016, 2017 Ludovic Courtès +;;; Copyright © 2016, 2017, 2019 Ludovic Courtès ;;; ;;; 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 . -(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))))))