diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-06-09 23:28:17 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-06-09 23:34:56 +0200 |
commit | 638c5b79397aba92ab3211a1ea3b3418e112ec66 (patch) | |
tree | e20df5c0e8a2429d038a1f5ed67790b1f18349e9 | |
parent | 2eca2d6267ae18e28dd63d72b1a37f784c7cad9e (diff) | |
download | guix-638c5b79397aba92ab3211a1ea3b3418e112ec66.tar.gz |
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.scm | 10 | ||||
-rw-r--r-- | tests/ui.scm | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/guix/ui.scm b/guix/ui.scm index cbc9dc841a..4d1b65cb8a 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -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))) diff --git a/tests/ui.scm b/tests/ui.scm index 51577acb76..058207e8b9 100644 --- a/tests/ui.scm +++ b/tests/ui.scm @@ -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")) |