[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
04/04: status: Display the current build phase.
From: |
guix-commits |
Subject: |
04/04: status: Display the current build phase. |
Date: |
Tue, 5 Feb 2019 06:03:54 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit 596fb4baf0c82dbf2bdba43171c743f26fa5b924
Author: Ludovic Courtès <address@hidden>
Date: Tue Feb 5 11:51:53 2019 +0100
status: Display the current build phase.
* guix/status.scm (spin!): Add 'phase' parameter and honor it. Callers
updated.
(print-build-event)[report-progress]: Likewise.
---
guix/status.scm | 33 ++++++++++++++++++++++++---------
1 file changed, 24 insertions(+), 9 deletions(-)
diff --git a/guix/status.scm b/guix/status.scm
index c3c2192..984f329 100644
--- a/guix/status.scm
+++ b/guix/status.scm
@@ -345,14 +345,21 @@ build-log\" traces."
(define spin!
(let ((steps (circular-list "\\" "|" "/" "-")))
- (lambda (port)
- "Display a spinner on PORT."
+ (lambda (phase port)
+ "Display a spinner on PORT. If PHASE is true, display it as a hint of
+the current build phase."
(when (isatty?* port)
(match steps
((first . rest)
(set! steps rest)
(display "\r\x1b[K" port)
(display first port)
+ (when phase
+ (display " " port)
+ ;; TRANSLATORS: The word "phase" here denotes a "build phase";
+ ;; "~a" is a placeholder for the untranslated name of the current
+ ;; build phase--e.g., 'configure' or 'build'.
+ (format port (G_ "'~a' phase") phase))
(force-output port)))))))
(define (color-output? port)
@@ -458,12 +465,18 @@ addition to build events."
(cut colorize-string <> 'RED 'BOLD)
identity))
- (define (report-build-progress %)
+ (define (report-build-progress phase %)
(let ((% (min (max % 0) 100))) ;sanitize
(erase-current-line port)
- (format port "~3d% " (inexact->exact (round %)))
- (display (progress-bar % (- (current-terminal-columns) 5))
- port)
+ (let* ((prefix (format #f "~3d% address@hidden'~a' ~]"
+ (inexact->exact (round %))
+ (case phase
+ ((build) #f) ;not useful to display it
+ (else phase))))
+ (length (string-length prefix)))
+ (display prefix port)
+ (display (progress-bar % (- (current-terminal-columns) length))
+ port))
(force-output port)))
(define print-log-line
@@ -477,10 +490,12 @@ addition to build events."
(match (build-status-building status)
((build) ;single job
(match (build-completion build)
- ((? number? %) (report-build-progress %))
- (_ (spin! port))))
+ ((? number? %)
+ (report-build-progress (build-phase build) %))
+ (_
+ (spin! (build-phase build) port))))
(_
- (spin! port))))))
+ (spin! #f port))))))
(define erase-current-line*
(if (isatty?* port)