mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-19 14:07:01 +01:00
status: Print a progress bar for on-going builds when possible.
* guix/status.scm (print-build-event)[report-build-progress]: New procedure. [print-log-line]: Add ID parameter. Call 'report-build-progress' when appropriate. Adjust callers.
This commit is contained in:
parent
73a8681a16
commit
3854c6429c
1 changed files with 21 additions and 6 deletions
|
@ -441,14 +441,29 @@ (define failure
|
|||
(cut colorize-string <> 'RED 'BOLD)
|
||||
identity))
|
||||
|
||||
(define (report-build-progress %)
|
||||
(let ((% (min (max % 0) 100))) ;sanitize
|
||||
(erase-current-line port)
|
||||
(format port "~3d% " (inexact->exact (round %)))
|
||||
(display (progress-bar % (- (current-terminal-columns) 5))
|
||||
port)
|
||||
(force-output port)))
|
||||
|
||||
(define print-log-line
|
||||
(if print-log?
|
||||
(if colorize?
|
||||
(lambda (line)
|
||||
(lambda (id line)
|
||||
(display (colorize-log-line line) port))
|
||||
(cut display <> port))
|
||||
(lambda (line)
|
||||
(spin! port))))
|
||||
(lambda (id line)
|
||||
(display line port)))
|
||||
(lambda (id line)
|
||||
(match (build-status-building status)
|
||||
((build) ;single job
|
||||
(match (build-completion build)
|
||||
((? number? %) (report-build-progress %))
|
||||
(_ (spin! port))))
|
||||
(_
|
||||
(spin! port))))))
|
||||
|
||||
(unless print-log?
|
||||
(display "\r" port)) ;erase the spinner
|
||||
|
@ -552,7 +567,7 @@ (define print-log-line
|
|||
;; through.
|
||||
(display line port)
|
||||
(force-output port))
|
||||
(print-log-line line))
|
||||
(print-log-line pid line))
|
||||
(cond ((string-prefix? "substitute: " line)
|
||||
;; The daemon prefixes early messages coming with 'guix
|
||||
;; substitute' with "substitute:". These are useful ("updating
|
||||
|
@ -565,7 +580,7 @@ (define print-log-line
|
|||
(display (info (string-trim-right line)) port)
|
||||
(newline))
|
||||
(else
|
||||
(print-log-line line)))))
|
||||
(print-log-line pid line)))))
|
||||
(_
|
||||
event)))
|
||||
|
||||
|
|
Loading…
Reference in a new issue