job-specifier: Adapt 'bump-time' to 'next-...-from' procedures
This is a follow-up to commit 913e3c65e4.
Since 'next-...-from' procedures now uses an '#:optional' argument
instead of a dotted optional arguments list, 'bump-time' doesn't need to
unwrap VALUE-LIST anymore.
* src/mcron/job-specifier.scm (bump-time): Pass VALUE-LIST directly to
'%find-best-next'.
* tests/job-specifier.scm ("next-hour-from"): New test.
* NEWS: Update.
Reported-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
fad58ca8c2
commit
f71b0b8310
3 changed files with 19 additions and 15 deletions
6
NEWS
6
NEWS
|
|
@ -10,6 +10,12 @@ GNU Mcron NEWS -*- outline -*-
|
|||
The programs now sets the GUILE_LOAD_PATH and GUILE_LOAD_COMPILED_PATH
|
||||
environment variables with the location of the installed Guile modules.
|
||||
|
||||
'next-year-from', 'next-year', 'next-month-from', 'next-month',
|
||||
'next-day-from', 'next-day', 'next-hour-from', 'next-hour',
|
||||
'next-minute-from', 'next-minute', 'next-second-from', and 'next-second' no
|
||||
longer crashes when passing an optional arguments.
|
||||
[bug introduced in mcron-1.1]
|
||||
|
||||
** Improvements
|
||||
|
||||
Some basic tests for the installed programs can be run after 'make install'
|
||||
|
|
|
|||
|
|
@ -85,21 +85,15 @@ go into the list. For example, (range 1 6 2) returns '(1 3 5)."
|
|||
;;
|
||||
;; ... except that the function is actually generalized to deal with
|
||||
;; seconds, minutes, etc., in an obvious way :-)
|
||||
;;
|
||||
;; Note that value-list always comes from an optional argument to a
|
||||
;; procedure, so is wrapped up as the first element of a list (i.e. it is a
|
||||
;; list inside a list).
|
||||
(match value-list
|
||||
(()
|
||||
(set-component! time (1+ (component time))))
|
||||
((val . rest)
|
||||
(match (%find-best-next (component time) val)
|
||||
((smallest . closest+)
|
||||
(cond ((inf? closest+)
|
||||
(set-higher-component! time (1+ (higher-component time)))
|
||||
(set-component! time smallest))
|
||||
(else
|
||||
(set-component! time closest+)))))))
|
||||
(if (null? value-list)
|
||||
(set-component! time (1+ (component time)))
|
||||
(match (%find-best-next (component time) value-list)
|
||||
((smallest . closest+)
|
||||
(cond ((inf? closest+)
|
||||
(set-higher-component! time (1+ (higher-component time)))
|
||||
(set-component! time smallest))
|
||||
(else
|
||||
(set-component! time closest+))))))
|
||||
(first (mktime time)))
|
||||
|
||||
;; Set of configuration methods which use the above general function to bump
|
||||
|
|
|
|||
|
|
@ -49,4 +49,8 @@
|
|||
(match (pk 'match (%find-best-next 1 '(0 2)))
|
||||
((a . b) (and (exact? a) (exact? b)))))
|
||||
|
||||
(test-equal "next-hour-from"
|
||||
7200
|
||||
(next-hour-from 10 '(0 3 7)))
|
||||
|
||||
(test-end)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue