aboutsummaryrefslogtreecommitdiff
path: root/bash/prompt.bash
diff options
context:
space:
mode:
Diffstat (limited to 'bash/prompt.bash')
-rw-r--r--bash/prompt.bash23
1 files changed, 21 insertions, 2 deletions
diff --git a/bash/prompt.bash b/bash/prompt.bash
index 9e74155..ab3b977 100644
--- a/bash/prompt.bash
+++ b/bash/prompt.bash
@@ -4,13 +4,32 @@ function prompt_command () {
local EXIT="$?"
local REMOTE=""
local VENV=""
+ local EXECTIME=""
+
+ local NOW=$(date +%s)
[ $EXIT -eq 0 ] && EXIT=""
[ ! -z "$SSH_CONNECTION" ] && REMOTE="${orange}[R] "
[ -z "$VIRTUAL_ENV" ] || VENV="$(basename "$VIRTUAL_ENV")"
+
+ if [ -n "$__LAST_PROMPT" ]; then
+ EXECTIME=" ($(( NOW - __LAST_PROMPT ))s)"
+ fi
- #PS1="\n${REMOTE}${cyan}\h:$(virtualenv_prompt) ${reset_color} ${yellow}\w ${green}$(scm_prompt_info)\n${red}${EXIT} ${reset_color}→ "
- PS1="\n${REMOTE}${cyan}\h: ${reset_color} ${yellow}\w ${green}${VENV}\n${red}${EXIT} ${reset_color}→ "
+ PS1="\n${yellow}\t${EXECTIME}${reset_color}\n${REMOTE}${white}\u@${cyan}\h: ${reset_color} ${yellow}\w ${green}${VENV}\n${red}${EXIT} ${reset_color}→ "
+ __LAST_PROMPT="$(date +%s)"
+}
+
+function preexec() {
+ __LAST_PROMPT="$(date +%s)"
+}
+
+preexec_invoke_exec () {
+ [ -n "$COMP_LINE" ] && return # do nothing if completing
+ [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
+ local this_command=`HISTTIMEFORMAT= history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//"`;
+ preexec "$this_command"
}
+trap 'preexec_invoke_exec' DEBUG
PROMPT_COMMAND=prompt_command