PVE::CalendarEvent - register format 'pve-calendar-event'
authorDietmar Maurer <dietmar@proxmox.com>
Wed, 17 May 2017 08:49:30 +0000 (10:49 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 17 May 2017 11:38:16 +0000 (13:38 +0200)
src/PVE/CalendarEvent.pm

index d235e04..f6a11c4 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use warnings;
 use Data::Dumper;
 use Time::Local;
+use PVE::JSONSchema;
 
 # Note: This class implements a parser/utils for systemd like calender exents
 # Date specification is currently not implemented
@@ -18,6 +19,18 @@ my $dow_names = {
     sat => 6,
 };
 
+PVE::JSONSchema::register_format('pve-calendar-event', \&pve_verify_calendar_event);
+sub pve_verify_calendar_event {
+    my ($text, $noerr) = @_;
+
+    eval { parse_calendar_event($text); };
+    if (my $err = $@) {
+       return undef if $noerr;
+       die "invalid calendar event '$text'\n";
+    }
+    return $text;
+}
+
 # The parser.
 # returns a $calspec hash which can be passed to compute_next_event()
 sub parse_calendar_event {