From 82bcfe3f25b1f0c08c93fd35497019b546e24ce2 Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Sat, 8 May 2021 19:19:41 +0200 Subject: First commit, v0.1 --- scripts/sdep-list | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 scripts/sdep-list (limited to 'scripts/sdep-list') diff --git a/scripts/sdep-list b/scripts/sdep-list new file mode 100755 index 0000000..a9e5405 --- /dev/null +++ b/scripts/sdep-list @@ -0,0 +1,65 @@ +#!/bin/sh + +# Lists events happening in a specific time range. +# Recurring events are listed at most once, and only if their first occurrence +# is in the range. +# +# The events are read from the following files in the SDEPDATA folder: +# once: events that only happen once; full date needs to be specified +# daily: events that happen every day; only specify the time in HH:MM format +# weekly: only specify Weekday + time +# monthly: only specify day of the month + time + +# This script uses relies on the non-portable -d option of GNU date. + +# Usage: sdep-list [today|tomorrow|week|nextweek|past|future] +# No options = all + +from="" +to="" +w="%d %b %H:%M" + +case $1 in + today) + from="$(date +%Y-%m-%d) 0:00" + to="$(date +%Y-%m-%d) 23:59" + w="%H:%M" + ;; + tomorrow) + from="$(date -d tomorrow +%Y-%m-%d) 0:00" + to="$(date -d tomorrow +%Y-%m-%d) 23:59" + w="%H:%M" + ;; + week) + from="$(date -d 'last monday' +%Y-%m-%d) 0:00" + to="$(date -d sunday +%Y-%m-%d) 23:59" + w="%a %H:%M" + ;; + nextweek) + from="$(date -d 'next monday' +%Y-%m-%d) 0:00" + to="$(date -d 'next monday + 6 days' +%Y-%m-%d) 23:59" + w="%a %H:%M" + ;; + past) + to="$(date +'%Y-%m-%d %H:%M')" + ;; + future) + from="$(date +'%Y-%m-%d %H:%M')" + ;; + *) + ;; +esac + +tempfile=$(mktemp) + +cat "SDEPDATA/once" > "$tempfile" +sed "s/^/$(date +%Y-%m-%d) /" <"SDEPDATA/daily" | >> "$tempfile" +while read line; do + weekday=$(echo "$line" | sed "s/ .*$//") + echo "$line" | sed "s/^[ ]*[^ ]* /$(date -d $weekday +%Y-%m-%d) /" +done <"SDEPDATA/weekly" >> "$tempfile" +sed "s/^[ ]*/$(date +%Y-%m-)/" <"SDEPDATA/daily" >> "$tempfile" + +sdep -w "$w" -f "$from" -t "$to" <"$tempfile" + +rm "$tempfile" -- cgit v1.3