aboutsummaryrefslogtreecommitdiff
path: root/gromo
blob: 25372ac74e39f6caaad277da562aa284af14b49b (plain) (blame)
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
40
41
42
43
44
45
46
#!/bin/sh
#
# gromo - To count your daily gromodoros :thumbsup
#
# Dependencies: curl and mpv for the 'ding' sound; slock to force you to rest :)
################################################################################

DEFAULT_DING=https://gramos.me/ding.opus
GROMO_SECONDS=$((60 * 20))
STOP_SECONDS=20

DATA_DIR=${XDG_DATA_HOME:-$HOME/.local/share}/gromo
TODAY_FILE=$DATA_DIR/$(date -I)
DING_FILE=${XDG_CACHE_HOME:-$HOME/.cache}/gromo/ding.opus

mkdir -p $DATA_DIR

[ -f $DING_FILE ] || curl $DEFAULT_DING --create-dirs -so $DING_FILE

gromos=0
[ -f $TODAY_FILE ] && read gromos < $TODAY_FILE
echo "Gromos today: $gromos"

while true; do
    echo -ne "Press any key to start gromo > "
    read -n1 ok
    echo -ne "\r                                                                                 \r"

    sleep $GROMO_SECONDS
    gromos=$(($gromos+1))
    seconds=$(($gromos * $GROMO_SECONDS))
    echo $gromos > $TODAY_FILE

    (sleep $STOP_SECONDS && mpv --no-terminal $DING_FILE) &
    slock

    echo $seconds
    if [ $seconds -lt 60 ]; then
        gromo_time="$seconds seconds"
    elif [ $seconds -lt 3600 ]; then
        gromo_time="$(($seconds / 60)) minutes"
    else
        gromo_time="$(($seconds / 3600)) hours"
    fi
    echo -ne "Completed $gromos gromos today ($gromo_time). "
done