blob: 2cb8f689ae5d94b36e00a3d0616c2738ed0fe301 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#!/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
|