From 638c5b79397aba92ab3211a1ea3b3418e112ec66 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 9 Jun 2016 23:28:17 +0200 Subject: ui: 'string->duration' supports hours and seconds. * guix/ui.scm (string->duration): Add seconds and hours. * tests/ui.scm ("duration, 1 second"): New test. --- guix/ui.scm | 10 +++++++++- 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 +;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès ;;; ;;; 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")) -- cgit v1.2.3