aboutsummaryrefslogtreecommitdiff
path: root/guix/progress.scm
diff options
context:
space:
mode:
authorLeo Famulari <leo@famulari.name>2018-10-07 20:49:14 -0400
committerLeo Famulari <leo@famulari.name>2018-10-07 20:49:14 -0400
commite8bd1946ec1df9f52f87292172af5b4e4a4e0023 (patch)
treee3209b814be53b0c21f29438a491c2aedcc2d1c5 /guix/progress.scm
parentcf6db76d2af2f287f12928df160447ab4165b3e5 (diff)
parenta18accba468beecf0200383f56d02894caf6f41a (diff)
downloadgnu-guix-e8bd1946ec1df9f52f87292172af5b4e4a4e0023.tar
gnu-guix-e8bd1946ec1df9f52f87292172af5b4e4a4e0023.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'guix/progress.scm')
-rw-r--r--guix/progress.scm11
1 files changed, 8 insertions, 3 deletions
diff --git a/guix/progress.scm b/guix/progress.scm
index f846944952..9da667a027 100644
--- a/guix/progress.scm
+++ b/guix/progress.scm
@@ -289,6 +289,8 @@ tasks is performed. Write PREFIX at the beginning of the line."
#:optional (log-port (current-output-port)))
"Like 'progress-reporter/file', but instead of returning human-readable
progress reports, write \"build trace\" lines to be processed elsewhere."
+ (define total 0) ;bytes transferred
+
(define (report-progress transferred)
(define message
(format #f "@ download-progress ~a ~a ~a ~a~%"
@@ -299,13 +301,16 @@ progress reports, write \"build trace\" lines to be processed elsewhere."
(progress-reporter
(start (lambda ()
+ (set! total 0)
(display (format #f "@ download-started ~a ~a ~a~%"
file url (or size "-"))
log-port)))
- (report (rate-limited report-progress %progress-interval))
+ (report (let ((report (rate-limited report-progress %progress-interval)))
+ (lambda (transferred)
+ (set! total transferred)
+ (report transferred))))
(stop (lambda ()
- (let ((size (or (and=> (stat file #f) stat:size)
- size)))
+ (let ((size (or size total)))
(report-progress size)
(display (format #f "@ download-succeeded ~a ~a ~a~%"
file url size)