-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathpotato.sh
executable file
·84 lines (73 loc) · 1.28 KB
/
potato.sh
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/bash
WORK=25
PAUSE=5
INTERACTIVE=true
MUTE=false
show_help() {
cat <<-END
usage: potato [-s] [-m] [-w m] [-b m] [-h]
-s: simple output. Intended for use in scripts
When enabled, potato outputs one line for each minute, and doesn't print the bell character
(ascii 007)
-m: mute -- don't play sounds when work/break is over
-w m: let work periods last m minutes (default is 25)
-b m: let break periods last m minutes (default is 5)
-h: print this message
END
}
play_notification() {
aplay -q /usr/lib/potato/notification.wav&
}
while getopts :sw:b:m opt; do
case "$opt" in
s)
INTERACTIVE=false
;;
m)
MUTE=true
;;
w)
WORK=$OPTARG
;;
b)
PAUSE=$OPTARG
;;
h|\?)
show_help
exit 1
;;
esac
done
time_left="%im left of %s "
if $INTERACTIVE; then
time_left="\r$time_left"
else
time_left="$time_left\n"
fi
while true
do
for ((i=$WORK; i>0; i--))
do
printf "$time_left" $i "work"
sleep 1m
done
! $MUTE && play_notification
if $INTERACTIVE; then
read -d '' -t 0.001
echo -e "\a"
echo "Work over"
read
fi
for ((i=$PAUSE; i>0; i--))
do
printf "$time_left" $i "pause"
sleep 1m
done
! $MUTE && play_notification
if $INTERACTIVE; then
read -d '' -t 0.001
echo -e "\a"
echo "Pause over"
read
fi
done