From: Dietmar Maurer Date: Wed, 17 May 2017 08:49:30 +0000 (+0200) Subject: PVE::CalendarEvent - register format 'pve-calendar-event' X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=commitdiff_plain;h=55c6e2cd3262cc0498ace3b37dc4d0407da732af PVE::CalendarEvent - register format 'pve-calendar-event' --- diff --git a/src/PVE/CalendarEvent.pm b/src/PVE/CalendarEvent.pm index d235e04..f6a11c4 100644 --- a/src/PVE/CalendarEvent.pm +++ b/src/PVE/CalendarEvent.pm @@ -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 {