You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
735 B

#!/bin/dash
help="""
usage: timer [option] [args]
options:
-c SECONDS Count down from given amount of seconds
-s Start stopwatch
-h Display this message
"""
countdown() {
start="$(( $(date '+%s') + $1))"
while [ $start -ge $(date +%s) ]; do
time="$(( $start - $(date +%s) ))"
printf '%s\r' "$(date -u -d "@$time" +%H:%M:%S)"
sleep 0.1
done
}
stopwatch() {
start=$(date +%s)
while true; do
time="$(( $(date +%s) - $start))"
printf '%s\r' "$(date -u -d "@$time" +%H:%M:%S)"
sleep 0.1
done
}
while getopts "c:sh" arg; do
case $arg in
c) countdown $OPTARG;;
s) stopwatch;;
h) echo "$help";;
esac
done