Update prompt to make time more accurate and faster
Signed-off-by: Aleksandar 'The Cobra' Widulski <thecobra@riseup.net>
This commit is contained in:
parent
9b6d88b0b9
commit
906f7d7070
52
.prompt
52
.prompt
|
@ -1,13 +1,25 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# shebang for syntax highlighting purposes
|
# shebang for syntax highlighting purposes
|
||||||
|
|
||||||
|
# Colors
|
||||||
|
_NON="\[\033[0m\]"
|
||||||
|
_BLD="\[\033[1m\]" # YEP BALD
|
||||||
|
_BLK="\[\033[30m\]"
|
||||||
|
_RED="\[\033[31m\]"
|
||||||
|
_GRN="\[\033[32m\]"
|
||||||
|
_YLW="\[\033[33m\]"
|
||||||
|
_BLU="\[\033[34m\]"
|
||||||
|
_PRP="\[\033[35m\]"
|
||||||
|
_CYN="\[\033[36m\]"
|
||||||
|
_WHT="\[\033[37m\]"
|
||||||
|
|
||||||
__debug_trap() {
|
__debug_trap() {
|
||||||
# Set necessary pre-command variables (PROMPT_COMMAND is a
|
# Set necessary pre-command variables (PROMPT_COMMAND is a
|
||||||
# command so its excluded here)
|
# command so its excluded here)
|
||||||
if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND"
|
if [[ "$BASH_COMMAND" != "$PROMPT_COMMAND"
|
||||||
&& "$LAST_BASH_COMMAND" == "$PROMPT_COMMAND" ]]; then
|
&& "$LAST_BASH_COMMAND" == "$PROMPT_COMMAND" ]]; then
|
||||||
LAST_RT="$EPOCHREALTIME"
|
|
||||||
INC_TIME=1
|
INC_TIME=1
|
||||||
|
LAST_RT="$EPOCHREALTIME" # This should be the last thing done in this function
|
||||||
fi
|
fi
|
||||||
LAST_BASH_COMMAND="$BASH_COMMAND"
|
LAST_BASH_COMMAND="$BASH_COMMAND"
|
||||||
}
|
}
|
||||||
|
@ -28,6 +40,9 @@ __get_cmd_time() {
|
||||||
[[ $CMD_TIME -ge 3600 ]] && printf '%sh ' ${HOUR:-0}
|
[[ $CMD_TIME -ge 3600 ]] && printf '%sh ' ${HOUR:-0}
|
||||||
[[ $CMD_TIME -ge 60 ]] && printf '%sm ' ${MINS:-0}
|
[[ $CMD_TIME -ge 60 ]] && printf '%sm ' ${MINS:-0}
|
||||||
[[ $CMD_TIME -ge 1 ]] && printf '%ss ' ${SECS:-0}
|
[[ $CMD_TIME -ge 1 ]] && printf '%ss ' ${SECS:-0}
|
||||||
|
# If you want to have a limit uncomment the next line and replace somenum with
|
||||||
|
# the minimum microseconds
|
||||||
|
# [[ $CMD_US -ge somenum ]] &&
|
||||||
printf '%sμs' ${CMD_US:-0}
|
printf '%sμs' ${CMD_US:-0}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,47 +107,36 @@ __ssh() {
|
||||||
}
|
}
|
||||||
|
|
||||||
__prompt() {
|
__prompt() {
|
||||||
# Get exit code
|
# Get exit code (must be first)
|
||||||
local PLC=(${PIPESTATUS[@]})
|
local PLC=(${PIPESTATUS[@]})
|
||||||
|
|
||||||
# *_RT may not be set
|
|
||||||
LAST_RT="${LAST_RT:-$EPOCHREALTIME}"
|
|
||||||
PROMPT_RT="${PROMPT_RT:-$EPOCHREALTIME}"
|
|
||||||
|
|
||||||
# Reset time when prompt was first displayed after command
|
# Reset time when prompt was first displayed after command
|
||||||
if [[ ${INC_TIME:-1} != 0 ]]; then
|
if [[ ${INC_TIME:-1} != 0 ]]; then
|
||||||
PROMPT_RT="$EPOCHREALTIME"
|
PROMPT_RT="$EPOCHREALTIME"
|
||||||
INC_TIME=0
|
INC_TIME=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# *_RT may not be set
|
||||||
|
LAST_RT="${LAST_RT:-$EPOCHREALTIME}"
|
||||||
|
PROMPT_RT="${PROMPT_RT:-$EPOCHREALTIME}"
|
||||||
|
|
||||||
# Get relative times
|
# Get relative times
|
||||||
|
|
||||||
# Remove decimal point, simulating multiplying by 1 million
|
# Remove decimal point, simulating multiplying by 1 million
|
||||||
PROMPT_RT1M="${PROMPT_RT%.*}${PROMPT_RT#*.}"
|
PROMPT_RT1M="${PROMPT_RT/.}"
|
||||||
LAST_RT1M="${LAST_RT%.*}${LAST_RT#*.}"
|
LAST_RT1M="${LAST_RT/.}"
|
||||||
|
|
||||||
# Subtract and divide by 1 million to get a more accurate difference
|
|
||||||
CMD_TIME="$(((PROMPT_RT1M-LAST_RT1M)/1000000))"
|
|
||||||
CMD_TIME="${CMD_TIME:-0}"
|
|
||||||
|
|
||||||
CMD_US="$(($PROMPT_RT1M-$LAST_RT1M))"
|
CMD_US="$(($PROMPT_RT1M-$LAST_RT1M))"
|
||||||
|
|
||||||
|
# Subtract and divide by 1 million to get a more accurate difference
|
||||||
|
CMD_TIME="$((CMD_US/1000000))"
|
||||||
|
CMD_TIME="${CMD_TIME:-0}"
|
||||||
|
|
||||||
[[ ${#CMD_US} -lt 6 ]] || CMD_US="${CMD_US: -6}"
|
[[ ${#CMD_US} -lt 6 ]] || CMD_US="${CMD_US: -6}"
|
||||||
CMD_US="$((10#0$CMD_US))"
|
CMD_US="$((10#0$CMD_US))"
|
||||||
|
|
||||||
# Set prompt sections
|
# Set prompt sections
|
||||||
|
|
||||||
# Colors
|
|
||||||
_NON="\[\033[0m\]"
|
|
||||||
_BLD="\[\033[1m\]" # YEP BALD
|
|
||||||
_BLK="\[\033[30m\]"
|
|
||||||
_RED="\[\033[31m\]"
|
|
||||||
_GRN="\[\033[32m\]"
|
|
||||||
_YLW="\[\033[33m\]"
|
|
||||||
_BLU="\[\033[34m\]"
|
|
||||||
_PRP="\[\033[35m\]"
|
|
||||||
_CYN="\[\033[36m\]"
|
|
||||||
_WHT="\[\033[37m\]"
|
|
||||||
|
|
||||||
# Text
|
# Text
|
||||||
|
|
||||||
# ssh detection and indicator
|
# ssh detection and indicator
|
||||||
|
|
Loading…
Reference in New Issue