diff options
author | Steve Sprang <scs@stevesprang.com> | 2015-09-16 20:43:58 -0700 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-09-17 14:40:46 +0200 |
commit | 47770296d2343a8f3bcd3082d09fbfbcef0857ae (patch) | |
tree | 24655983aa186eb12c910cc438861557be10d265 /guix | |
parent | be3feafedf4b040680b3b5a23646b81ecefaf9a0 (diff) |
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>
Diffstat (limited to 'guix')
-rw-r--r-- | guix/build/download.scm | 11 |
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 |