diff options
author | Jonas Smedegaard <dr@jones.dk> | 2023-08-13 12:57:59 +0200 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2024-03-10 09:19:17 +0100 |
commit | 0089d87b3eda33b26f5ad07a8fc95b192740d73d (patch) | |
tree | c5d31d6934a49a02c9d7aec4aa661644ed14d787 | |
parent | 85a1577e7347c9dc856a2137319ba0e8175f5812 (diff) |
parse time shift from environment variable CAL_DAV_NOW
-rwxr-xr-x | bin/events2md.pl | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/bin/events2md.pl b/bin/events2md.pl index 14524b1..3a35a32 100755 --- a/bin/events2md.pl +++ b/bin/events2md.pl @@ -125,8 +125,22 @@ if ( $log->is_trace ) { # serialize calendar events $log->debug('serialize calendar events...'); -my $start = DateTime->now; -my $end = $start->clone->add( months => 6 ); +my $start; +if ( $ENV{CAL_DAV_NOW} ) { + try { require DateTimeX::Easy } + catch ($e) { + $log->fatalf( 'failed parsing CAL_DAV_NOW: %s', $e ) && exit 2 + } + $start = DateTimeX::Easy->new( $ENV{CAL_DAV_NOW} ); + $log->fatalf( + 'failed parsing CAL_DAV_NOW: unknown start time "%s"', + $ENV{CAL_DAV_NOW} + ) + && exit 2 + unless defined $start; +} +$start ||= DateTime->now; +my $end = $start->clone->add( months => 6 ); $log->infof( 'will pick events between %s and %s', $start, $end ); my $span = DateTime::Span->from_datetimes( start => $start, end => $end ); my @events = sort { |