weather: Use (guix progress) for progress report.

* guix/progress.scm (start-progress-reporter!, stop-progress-reporter!)
(progress-reporter-report!): New procedures.
* guix/scripts/weather.scm (call-with-progress-reporter): New procedure.
(package-outputs)[update-progress!]: Remove.
Use 'call-with-progress-reporter' instead.
(guix-weather): Parameterize 'current-terminal-columns'.
This commit is contained in:
Ludovic Courtès 2017-11-22 14:39:26 +01:00
parent 4cdb27af48
commit 1fafa2f587
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 76 additions and 55 deletions

View file

@ -31,6 +31,10 @@
progress-reporter?
call-with-progress-reporter
start-progress-reporter!
stop-progress-reporter!
progress-reporter-report!
progress-reporter/silent
progress-reporter/file
progress-reporter/bar
@ -60,6 +64,24 @@ stopped."
(($ <progress-reporter> start report stop)
(dynamic-wind start (lambda () (proc report)) stop))))
(define (start-progress-reporter! reporter)
"Low-level procedure to start REPORTER."
(match reporter
(($ <progress-reporter> start report stop)
(start))))
(define (progress-reporter-report! reporter)
"Low-level procedure to lead REPORTER to emit a report."
(match reporter
(($ <progress-reporter> start report stop)
(report))))
(define (stop-progress-reporter! reporter)
"Low-level procedure to stop REPORTER."
(match reporter
(($ <progress-reporter> start report stop)
(stop))))
(define progress-reporter/silent
(make-progress-reporter noop noop noop))