summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2023-08-13 12:57:59 +0200
committerJonas Smedegaard <dr@jones.dk>2024-03-10 09:19:17 +0100
commit0089d87b3eda33b26f5ad07a8fc95b192740d73d (patch)
treec5d31d6934a49a02c9d7aec4aa661644ed14d787
parent85a1577e7347c9dc856a2137319ba0e8175f5812 (diff)
parse time shift from environment variable CAL_DAV_NOW
-rwxr-xr-xbin/events2md.pl18
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 {