summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-06-09 23:28:17 +0200
committerLudovic Courtès <ludo@gnu.org>2016-06-09 23:34:56 +0200
commit638c5b79397aba92ab3211a1ea3b3418e112ec66 (patch)
treee20df5c0e8a2429d038a1f5ed67790b1f18349e9
parent2eca2d6267ae18e28dd63d72b1a37f784c7cad9e (diff)
ui: 'string->duration' supports hours and seconds.
* guix/ui.scm (string->duration): Add seconds and hours. * tests/ui.scm ("duration, 1 second"): New test.
-rw-r--r--guix/ui.scm10
-rw-r--r--tests/ui.scm6
2 files changed, 14 insertions, 2 deletions
diff --git a/guix/ui.scm b/guix/ui.scm
index cbc9dc841ac..4d1b65cb8a8 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -968,7 +968,15 @@ following patterns: \"1d\", \"1w\", \"1m\"."
968 (make-time time-duration 0 968 (make-time time-duration 0
969 (* 3600 hours (string->number (match:substring match 1))))) 969 (* 3600 hours (string->number (match:substring match 1)))))
970 970
971 (cond ((string-match "^([0-9]+)d$" str) 971 (cond ((string-match "^([0-9]+)s$" str)
972 =>
973 (lambda (match)
974 (make-time time-duration 0
975 (string->number (match:substring match 1)))))
976 ((string-match "^([0-9]+)h$" str)
977 (lambda (match)
978 (hours->duration 1 match)))
979 ((string-match "^([0-9]+)d$" str)
972 => 980 =>
973 (lambda (match) 981 (lambda (match)
974 (hours->duration 24 match))) 982 (hours->duration 24 match)))
diff --git a/tests/ui.scm b/tests/ui.scm
index 51577acb76f..058207e8b95 100644
--- a/tests/ui.scm
+++ b/tests/ui.scm
@@ -1,5 +1,5 @@
1;;; GNU Guix --- Functional package management for GNU 1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> 2;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
3;;; 3;;;
4;;; This file is part of GNU Guix. 4;;; This file is part of GNU Guix.
5;;; 5;;;
@@ -189,6 +189,10 @@ Second line" 24))
189 (string->duration "1m") 189 (string->duration "1m")
190 (string->duration "30d")) 190 (string->duration "30d"))
191 191
192(test-equal "duration, 1 second"
193 (make-time time-duration 0 1)
194 (string->duration "1s"))
195
192(test-equal "duration, integer" 196(test-equal "duration, integer"
193 #f 197 #f
194 (string->duration "1")) 198 (string->duration "1"))