aboutsummaryrefslogtreecommitdiff
path: root/scripts/sdep-checknow
blob: 0319b5fca2dd06d79b75d4b7b489de113494618a (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
#!/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 

Generated with cgit - Back to sebastiano.tronto.net