~ruther/guix-local

638c5b79397aba92ab3211a1ea3b3418e112ec66 — Ludovic Courtès 9 years ago 2eca2d6
ui: 'string->duration' supports hours and seconds.

* guix/ui.scm (string->duration): Add seconds and hours.
* tests/ui.scm ("duration, 1 second"): New test.
2 files changed, 14 insertions(+), 2 deletions(-)

M guix/ui.scm
M tests/ui.scm
M guix/ui.scm => guix/ui.scm +9 -1
@@ 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)))

M tests/ui.scm => tests/ui.scm +5 -1
@@ 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"))