mirror of
git://git.proxmox.com/git/pve-common.git
synced 2024-12-22 21:33:47 +03:00
add ability to have multiple timespecs for hours and minutes
so things like: 2,4:0 will work also add regression tests for this Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
a5ffa49fda
commit
e2c29de775
@ -128,8 +128,12 @@ sub parse_calendar_event {
|
|||||||
|
|
||||||
if ($time_spec =~ m/^($chars+):($chars+)$/) {
|
if ($time_spec =~ m/^($chars+):($chars+)$/) {
|
||||||
my ($p1, $p2) = ($1, $2);
|
my ($p1, $p2) = ($1, $2);
|
||||||
$parse_single_timespec->($p1, 24, \$matchall_hours, $hours_hash);
|
foreach my $p (split(',', $p1)) {
|
||||||
$parse_single_timespec->($p2, 60, \$matchall_minutes, $minutes_hash);
|
$parse_single_timespec->($p, 24, \$matchall_hours, $hours_hash);
|
||||||
|
}
|
||||||
|
foreach my $p (split(',', $p2)) {
|
||||||
|
$parse_single_timespec->($p, 60, \$matchall_minutes, $minutes_hash);
|
||||||
|
}
|
||||||
} elsif ($time_spec =~ m/^($chars)+$/) { # minutes only
|
} elsif ($time_spec =~ m/^($chars)+$/) { # minutes only
|
||||||
$matchall_hours = 1;
|
$matchall_hours = 1;
|
||||||
foreach my $p (split(',', $time_spec)) {
|
foreach my $p (split(',', $time_spec)) {
|
||||||
|
@ -157,6 +157,24 @@ my $tests = [
|
|||||||
' mon 0 0',
|
' mon 0 0',
|
||||||
{ error => "unable to parse calendar event - unused parts" },
|
{ error => "unable to parse calendar event - unused parts" },
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
'0,1,3..5',
|
||||||
|
{ h => '*', m => [0,1,3,4,5], dow => $alldays },
|
||||||
|
[
|
||||||
|
[0, 60],
|
||||||
|
[60, 3*60],
|
||||||
|
[5*60, 60*60]
|
||||||
|
]
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'2,4:0,1,3..5',
|
||||||
|
{ h => [2,4], m => [0,1,3,4,5], dow => $alldays },
|
||||||
|
[
|
||||||
|
[0, 2*60*60],
|
||||||
|
[2*60*60 + 60, 2*60*60 + 3*60],
|
||||||
|
[2*60*60 + 5*60, 4*60*60]
|
||||||
|
]
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach my $test (@$tests) {
|
foreach my $test (@$tests) {
|
||||||
|
Loading…
Reference in New Issue
Block a user