lib/timer.sh

527 B · 23 lines · bash

1#!/usr/bin/env bash
2
3brt_timer() {
4 local seconds="${1:-}"
5 local message="${2:-Timer done!}"
6
7 if [[ -z "$seconds" ]] || ! [[ "$seconds" =~ ^[0-9]+(\.[0-9]+)?$ ]]; then
8 brt_error "Usage: brt -timer <seconds> [message]"
9 exit 1
10 fi
11
12 brt_info "Timer set for ${seconds}s — ${message}"
13 local remaining="${seconds%%.*}"
14 while (( remaining > 0 )); do
15 printf "\r %ss remaining..." "$remaining"
16 sleep 1
17 ((remaining--))
18 done
19 printf "\r\033[K"
20 brt_ok "$message"
21 printf '\a' 2>/dev/null || true
22}
23