ui: 'string->duration' supports hours and seconds.
authorLudovic Courtès <ludo@gnu.org>
Thu, 9 Jun 2016 21:28:17 +0000 (23:28 +0200)
committerLudovic Courtès <ludo@gnu.org>
Thu, 9 Jun 2016 21:34:56 +0000 (23:34 +0200)
* guix/ui.scm (string->duration): Add seconds and hours.
* tests/ui.scm ("duration, 1 second"): New test.

guix/ui.scm
tests/ui.scm

index cbc9dc8..4d1b65c 100644 (file)
@@ -968,7 +968,15 @@ following patterns: \"1d\", \"1w\", \"1m\"."
     (make-time time-duration 0
                (* 3600 hours (string->number (match:substring match 1)))))
 
-  (cond ((string-match "^([0-9]+)d$" str)
+  (cond ((string-match "^([0-9]+)s$" str)
+         =>
+         (lambda (match)
+           (make-time time-duration 0
+                      (string->number (match:substring match 1)))))
+        ((string-match "^([0-9]+)h$" str)
+         (lambda (match)
+           (hours->duration 1 match)))
+        ((string-match "^([0-9]+)d$" str)
          =>
          (lambda (match)
            (hours->duration 24 match)))
index 51577ac..058207e 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -189,6 +189,10 @@ Second line" 24))
   (string->duration "1m")
   (string->duration "30d"))
 
+(test-equal "duration, 1 second"
+  (make-time time-duration 0 1)
+  (string->duration "1s"))
+
 (test-equal "duration, integer"
   #f
   (string->duration "1"))