lib/command_duration: dynamic clock hand
Calculate the position (from 1 to 12) of the hour hand on the clock emoji used for the _command_duration string. Expressly handle COMMAND_DURATION_COLOR as blank when undefined.pull/1906/head
parent
ad1d73aaa1
commit
09e8c25b64
|
|
@ -9,7 +9,7 @@ fi
|
|||
|
||||
COMMAND_DURATION_START_TIME=
|
||||
|
||||
COMMAND_DURATION_ICON=${COMMAND_DURATION_ICON:-' '}
|
||||
COMMAND_DURATION_ICON=${COMMAND_DURATION_ICON:-' '} 🕘
|
||||
COMMAND_DURATION_MIN_SECONDS=${COMMAND_DURATION_MIN_SECONDS:-'1'}
|
||||
|
||||
_command_duration_pre_exec() {
|
||||
|
|
@ -18,6 +18,11 @@ _command_duration_pre_exec() {
|
|||
COMMAND_DURATION_START_TIME="$(date "+%s").${command_nano_now}"
|
||||
}
|
||||
|
||||
function _dynamic_clock_icon {
|
||||
local -i clock_hand=$(((${1:-${SECONDS}} % 12) + 90))
|
||||
printf -v 'COMMAND_DURATION_ICON' '%b' "\xf0\x9f\x95\x$clock_hand"
|
||||
}
|
||||
|
||||
_command_duration() {
|
||||
local command_duration command_start current_time
|
||||
local minutes seconds deciseconds
|
||||
|
|
@ -54,10 +59,11 @@ _command_duration() {
|
|||
seconds=$((command_duration % 60))
|
||||
fi
|
||||
|
||||
_dynamic_clock_icon
|
||||
if ((minutes > 0)); then
|
||||
printf "%s%s%dm %ds" "$COMMAND_DURATION_ICON" "$COMMAND_DURATION_COLOR" "$minutes" "$seconds"
|
||||
printf "%s%s%dm %ds" "${COMMAND_DURATION_ICON:-}" "${COMMAND_DURATION_COLOR:-}" "$minutes" "$seconds"
|
||||
elif ((seconds >= COMMAND_DURATION_MIN_SECONDS)); then
|
||||
printf "%s%s%d.%01ds" "$COMMAND_DURATION_ICON" "$COMMAND_DURATION_COLOR" "$seconds" "$deciseconds"
|
||||
printf "%s%s%d.%01ds" "${COMMAND_DURATION_ICON:-}" "${COMMAND_DURATION_COLOR:-}" "$seconds" "$deciseconds"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue