aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Sprang <scs@stevesprang.com>2015-09-16 20:43:58 -0700
committerLudovic Courtès <ludo@gnu.org>2015-09-17 14:40:46 +0200
commit47770296d2343a8f3bcd3082d09fbfbcef0857ae (patch)
tree24655983aa186eb12c910cc438861557be10d265
parentbe3feafedf4b040680b3b5a23646b81ecefaf9a0 (diff)
downloadguix-47770296d2343a8f3bcd3082d09fbfbcef0857ae.tar
guix-47770296d2343a8f3bcd3082d09fbfbcef0857ae.tar.gz
download: Only show hours in the elapsed time if necessary.
* guix/build/download.scm (seconds->string): Conditionally include hours in timestamp. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--guix/build/download.scm11
1 files changed, 6 insertions, 5 deletions
diff --git a/guix/build/download.scm b/guix/build/download.scm
index 9b72e8f795..d362fc1f26 100644
--- a/guix/build/download.scm
+++ b/guix/build/download.scm
@@ -63,16 +63,17 @@ object, as an inexact number."
(/ (time-nanosecond duration) 1e9)))
(define (seconds->string duration)
- "Given DURATION in seconds, return a string representing it in 'hh:mm:ss'
-format."
+ "Given DURATION in seconds, return a string representing it in 'mm:ss' or
+'hh:mm:ss' format, as needed."
(if (not (number? duration))
- "00:00:00"
+ "00:00"
(let* ((total-seconds (nearest-exact-integer duration))
(extra-seconds (modulo total-seconds 3600))
- (hours (quotient total-seconds 3600))
+ (num-hours (quotient total-seconds 3600))
+ (hours (and (positive? num-hours) num-hours))
(mins (quotient extra-seconds 60))
(secs (modulo extra-seconds 60)))
- (format #f "~2,'0d:~2,'0d:~2,'0d" hours mins secs))))
+ (format #f "~@[~2,'0d:~]~2,'0d:~2,'0d" hours mins secs))))
(define (byte-count->string size)
"Given SIZE in bytes, return a string representing it in a human-readable