| 1 | #!/usr/bin/env bash |
| 2 | |
| 3 | brt_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 | |