53 lines
1.3 KiB
Plaintext
53 lines
1.3 KiB
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
case $0 in
|
||
|
*"timer"*)
|
||
|
[ $# -ne 2 ] && printf "specify minutes and \
|
||
|
seconds\n" && exit 1
|
||
|
sleep $(($1 * 60 + $2))
|
||
|
printf "your timer is done\a\n"
|
||
|
exit 0
|
||
|
;;
|
||
|
*"alarm"*)
|
||
|
[ $# -ne 1 ] && printf "specify time\n" && exit 1
|
||
|
ttw=$(($(date +%s --date="$1 tomorrow") - $(date +%s)))
|
||
|
sleep $ttw
|
||
|
printf "your alarm is done\a\n"
|
||
|
exit 0
|
||
|
;;
|
||
|
*"tomato"*)
|
||
|
[ $# -ne 2 ] && \
|
||
|
printf "specify work and rest time\n" && exit 1
|
||
|
counter=0
|
||
|
while true; do
|
||
|
printf "start work cycle %s\a\n" $(($counter + 1))
|
||
|
sleep $(($1 * 60))
|
||
|
printf "start rest cycle %s\a\n" $(($counter + 1))
|
||
|
sleep $(($2 * 60))
|
||
|
counter=$(($counter + 1))
|
||
|
done
|
||
|
exit 0
|
||
|
;;
|
||
|
*"stopwatch"*)
|
||
|
now=$(date +%s)
|
||
|
read var
|
||
|
printf "%s\n" $(($(date +%s) - $now))
|
||
|
exit 0
|
||
|
;;
|
||
|
*"verbosewatch"*)
|
||
|
min=59
|
||
|
sec=55
|
||
|
while true; do
|
||
|
printf "%02d:%02d\r" $min $sec
|
||
|
sleep 1
|
||
|
sec=$(($sec + 1))
|
||
|
[ $sec -eq 60 ] && min=$(($min + 1)) && sec=0
|
||
|
done
|
||
|
exit 0
|
||
|
;;
|
||
|
*)
|
||
|
printf "unknown invocation\n"
|
||
|
exit 2
|
||
|
;;
|
||
|
esac
|