summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-10-04 10:24:34 +0200
committerLudovic Courtès <ludo@gnu.org>2018-10-04 10:24:34 +0200
commit1d0be47ab680db938ac8da1ee65e1de91e198f67 (patch)
treedfef17bb5cd3caef636bc2bfc631a4e67b10170f
parentff30bb010bdce50f92eea0ad64280c9701a2687d (diff)
downloadguix-1d0be47ab680db938ac8da1ee65e1de91e198f67.tar.gz
progress: Generate valid 'download-progress' traces when the size is unknown.
Fixes <https://bugs.gnu.org/32895>.
Reported by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>.

* guix/progress.scm (progress-reporter/trace): In 'stop', make sure SIZE
is an integer.  Previously we'd generate a "@ download-progress" trace
with #f for the 'transferred' number when downloading files whose size
is not known in advance.
-rw-r--r--guix/progress.scm12
1 files changed, 6 insertions, 6 deletions
diff --git a/guix/progress.scm b/guix/progress.scm
index 3b9ff408cd..f846944952 100644
--- a/guix/progress.scm
+++ b/guix/progress.scm
@@ -304,12 +304,12 @@ progress reports, write \"build trace\" lines to be processed elsewhere."
                      log-port)))
    (report (rate-limited report-progress %progress-interval))
    (stop (lambda ()
-           (report-progress size)
-           (display (format #f "@ download-succeeded ~a ~a ~a~%"
-                            file url
-                            (or (and=> (stat file #f) stat:size)
-                                size))
-                    log-port)))))
+           (let ((size (or (and=> (stat file #f) stat:size)
+                           size)))
+             (report-progress size)
+             (display (format #f "@ download-succeeded ~a ~a ~a~%"
+                              file url size)
+                      log-port))))))
 
 ;; TODO: replace '(@ (guix build utils) dump-port))'.
 (define* (dump-port* in out