1
0
mirror of https://git.decapod.one/brethil/dotfiles synced 2024-11-22 03:21:30 +01:00

zsh: alarm: add elapsed time

This commit is contained in:
bretello 2024-08-02 18:19:56 +02:00
parent f414792552
commit 4b457a022c
Signed by: brethil
GPG Key ID: 876AAC6290170FE7

View File

@ -75,22 +75,46 @@ function alarm {
echo "Usage: alarm 5[s]|5m|1h" echo "Usage: alarm 5[s]|5m|1h"
return 1 return 1
fi fi
value=$1
local t local t
if [[ $1 = *"m" ]]; then if [[ $value = *"m" ]]; then
t=$((${1/m/}*60)) t=$((${value/m/}*60))
extra="($1)" elif [[ $value = *"h" ]]; then
elif [[ $1 = *"h" ]]; then t=$((${value/h/}*3600))
t=$((${1/h/}*3600)) elif [[ $value = *"s" ]]; then
extra="($1)" t=${value/s/}
elif [[ $1 = *"s" ]]; then
t=${1/s/}
else else
t=$1 t=$value
fi fi
echo "Setting a timer for $1 $extra" function format(){
if [[ $1 -lt 60 ]]; then
printf "00:%02is" $1
return
fi
sleep $t && beeper if [[ $1 -lt 3600 ]]; then
minutes=$(($1/60))
seconds=$(($1%60))
printf "%02dm:%02dm" $minutes $seconds
return
fi
hours=$(($1/3600))
remainder=$(($1%3600))
printf "%dh:%s" hours "$(format $remainder)"
}
count=$t
while [[ $count -ge 0 ]]; do
echo -en "Set a timer for $1 │ remaining=$(format $count)"
count=$((count-1))
sleep 1
echo -en "\r"
done
echo -e "\nDone!"
beeper
} }