CalendarEvent: add 'utc' flag to calendar specs
authorWolfgang Bumiller <w.bumiller@proxmox.com>
Wed, 31 Oct 2018 09:54:17 +0000 (10:54 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 31 Oct 2018 13:56:45 +0000 (14:56 +0100)
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
src/PVE/CalendarEvent.pm

index 8a67d4a..56e9923 100644 (file)
@@ -108,6 +108,9 @@ sub parse_calendar_event {
     };
 
     my @parts = split(/\s+/, $event);
+    my $utc = (@parts && uc($parts[-1]) eq 'UTC');
+    pop @parts if $utc;
+
 
     if ($parts[0] =~ m/$dowsel/i) {
        my $dow_spec = shift @parts;
@@ -158,7 +161,7 @@ sub parse_calendar_event {
        $m = [ sort { $a <=> $b } keys %$minutes_hash ];
     }
 
-    return { h => $h, m => $m, dow => [ sort keys %$dow_hash ]};
+    return { h => $h, m => $m, dow => [ sort keys %$dow_hash ], utc => $utc };
 }
 
 sub is_leap_year($) {
@@ -227,11 +230,12 @@ sub time_add_days($$) {
 }
 
 sub compute_next_event {
-    my ($calspec, $last, $utc) = @_;
+    my ($calspec, $last) = @_;
 
     my $hspec = $calspec->{h};
     my $mspec = $calspec->{m};
     my $dowspec = $calspec->{dow};
+    my $utc = $calspec->{utc};
 
     $last += 60; # at least one minute later