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-checknow | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 scripts/sdep-checknow (limited to 'scripts/sdep-checknow') diff --git a/scripts/sdep-checknow b/scripts/sdep-checknow new file mode 100755 index 0000000..0319b5f --- /dev/null +++ b/scripts/sdep-checknow @@ -0,0 +1,37 @@ +#!/bin/sh + +# Run this every minute (for example using cron) to receive a notification +# when an event happens. +# +# The events are read from the following files in 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 + +# Requires: notify-send; the weekly part uses the non-portable -d option of +# GNU date, which you might have to change if you are not on Linux (on some +# systems you can accomplish the same with -j). + +notify="notify-send -t 3600000" +title="$(date +%H:%M)" + +sdepnotify() { + sdep -w "" -s "" | while read text; do $notify "$title" "$text"; done +} + +# One-off events +sdepnotify <"SDEPDATA/once" + +# Daily events +sed "s/^/$(date +%Y-%m-%d) /" <"SDEPDATA/daily" | sdepnotify + +# Weekly events - needs GNU date (try -j intead of -d on BSD) +while read line; do + weekday=$(echo "$line" | sed "s/ .*$//") + echo "$line" | sed "s/^[ ]*[^ ]* /$(date -d $weekday +%Y-%m-%d) /" +done <"SDEPDATA/weekly" | \ +sdepnotify + +# Monthly events +sed "s/^[ ]*/$(date +%Y-%m-)/" <"SDEPDATA/daily" | sdepnotify -- cgit v1.3