Add command duration
parent
c387517122
commit
07305366bb
|
|
@ -10,11 +10,16 @@ SCM_GIT_CHAR_ICON_BRANCH=${BARBUK_GIT_BRANCH_ICON:=''}
|
||||||
SCM_HG_CHAR=${BARBUK_HG_CHAR:='☿ '}
|
SCM_HG_CHAR=${BARBUK_HG_CHAR:='☿ '}
|
||||||
SCM_SVN_CHAR=${BARBUK_SVN_CHAR:='⑆ '}
|
SCM_SVN_CHAR=${BARBUK_SVN_CHAR:='⑆ '}
|
||||||
EXIT_CODE_ICON=${BARBUK_EXIT_CODE_ICON:=' '}
|
EXIT_CODE_ICON=${BARBUK_EXIT_CODE_ICON:=' '}
|
||||||
|
COMMAND_DURATION_ICON=${BARBUK_COMMAND_DURATION_ICON:=' '}
|
||||||
|
|
||||||
# Ssh user and hostname display
|
# Ssh user and hostname display
|
||||||
SSH_INFO=${BARBUK_SSH_INFO:=true}
|
SSH_INFO=${BARBUK_SSH_INFO:=true}
|
||||||
HOST_INFO=${BARBUK_HOST_INFO:=long}
|
HOST_INFO=${BARBUK_HOST_INFO:=long}
|
||||||
|
|
||||||
|
# Command duration
|
||||||
|
COMMAND_DURATION=${BARBUK_COMMAND_DURATION:=true}
|
||||||
|
COMMAND_DURATION_FILE="/tmp/bashit_theme_execution_$$"
|
||||||
|
|
||||||
# Bash-it default glyphs customization
|
# Bash-it default glyphs customization
|
||||||
SCM_NONE_CHAR=
|
SCM_NONE_CHAR=
|
||||||
SCM_THEME_PROMPT_DIRTY=" ${bold_red}✗"
|
SCM_THEME_PROMPT_DIRTY=" ${bold_red}✗"
|
||||||
|
|
@ -65,8 +70,50 @@ function _exit-code {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _command_duration {
|
||||||
|
local command_duration command_start current_time="$1"
|
||||||
|
|
||||||
|
if [ "$COMMAND_DURATION" != true ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -f "$COMMAND_DURATION_FILE" ]]; then
|
||||||
|
command_start=$(< "$COMMAND_DURATION_FILE")
|
||||||
|
command_duration=$(( current_time - command_start ))
|
||||||
|
command rm "$COMMAND_DURATION_FILE"
|
||||||
|
else
|
||||||
|
command_duration=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$command_duration" -gt 0 ]]; then
|
||||||
|
timer_m=$(( command_duration / 60 ))
|
||||||
|
timer_s=$(( command_duration % 60 ))
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$timer_m" -gt 0 ]]; then
|
||||||
|
echo "${bold_blue}$COMMAND_DURATION_ICON${normal}${timer_m}m ${timer_s}s"
|
||||||
|
elif [[ "$timer_s" -gt 0 ]]; then
|
||||||
|
echo "${bold_blue}$COMMAND_DURATION_ICON${normal}${timer_s}s"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function delete_temp_file() {
|
||||||
|
if [[ -f "$COMMAND_DURATION_FILE" ]]; then
|
||||||
|
rm -f "$COMMAND_DURATION_FILE"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _pre_exec {
|
||||||
|
date +%s > "$COMMAND_DURATION_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
PS0="\[\$(_pre_exec)\]"
|
||||||
|
|
||||||
function _prompt {
|
function _prompt {
|
||||||
local exit_code="$?" wrap_char=' ' dir_color=$green ssh_info='' python_venv='' host
|
local exit_code="$?" wrap_char=' ' dir_color=$green ssh_info='' python_venv='' host current_time
|
||||||
|
current_time=$(date +%s)
|
||||||
|
|
||||||
|
trap delete_temp_file EXIT HUP INT TRAP TERM
|
||||||
|
|
||||||
_exit-code exit_code
|
_exit-code exit_code
|
||||||
_git-uptream-remote-logo
|
_git-uptream-remote-logo
|
||||||
|
|
@ -95,7 +142,7 @@ function _prompt {
|
||||||
python_venv=$(basename "${VIRTUAL_ENV}")
|
python_venv=$(basename "${VIRTUAL_ENV}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PS1="\\n${ssh_info} ${python_venv} ${purple}$(scm_char)${dir_color}\\w${normal}$(scm_prompt_info)${exit_code}"
|
PS1="\\n${ssh_info} ${python_venv} ${purple}$(scm_char)${dir_color}\\w${normal}$(scm_prompt_info)$(_command_duration "$current_time")${exit_code}"
|
||||||
|
|
||||||
[[ ${#PS1} -gt $((COLUMNS*3)) ]] && wrap_char="\\n"
|
[[ ${#PS1} -gt $((COLUMNS*3)) ]] && wrap_char="\\n"
|
||||||
PS1="${PS1}${wrap_char}❯${normal} "
|
PS1="${PS1}${wrap_char}❯${normal} "
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue