#!/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: a command to send notifications such as herbe or 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" notify=herbe 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