.files/.prompt

70 lines
1.8 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# shebang for syntax highlightin purposes
export TIME_TOGGLE=0
trap '[[ $BASH_COMMAND != "$PROMPT_COMMAND" ]] && export LAST_EPOCH="$EPOCHSECONDS" && export INC_TIME=1' DEBUG
export TIME_TOGGLE=0
__get_cmd_time() {
if [ $COMMAND_TIME -ge 3600 ]; then
TZ=UTC printf 'took %(%Hh%Mm%Ss)T ' $COMMAND_TIME
elif [ $COMMAND_TIME -ge 60 ]; then
TZ=UTC printf 'took %(%Mm%Ss)T ' $COMMAND_TIME
elif [ $COMMAND_TIME -ge 1 ]; then
TZ=UTC printf 'took %(%Ss)T ' $COMMAND_TIME
fi
}
__sig() {
case $1 in
126) printf ACCES ;;
127) printf NOENT ;;
129) printf HUP ;;
130) printf INT ;;
131) printf QUIT ;;
132) printf ILL ;;
133) printf TRAP ;;
134) printf ABRT ;;
135) printf BUS ;;
136) printf FPE ;;
137) printf KILL ;;
138) printf USR1 ;;
139) printf SEGV ;;
140) printf USR2 ;;
141) printf PIPE ;;
142) printf ALRM ;;
143) printf TERM ;;
144) printf STKFLT ;;
145) printf CHLD ;;
146) printf CONT ;;
147) printf STOP ;;
148) printf TSTP ;;
149) printf TTIN ;;
150) printf TTOU ;;
151) printf URG ;;
152) printf XCPU ;;
153) printf XFSZ ;;
154) printf VTALRM ;;
155) printf PROF ;;
156) printf WINCH ;;
157) printf IO ;;
158) printf PWR ;;
159) printf SYS ;;
16[3-9]|1[7-8][0-9]|19[0-2]) printf RT$(($1-128)) ;;
*) printf $1 ;;
esac
}
__prompt() {
PEC=$?
if [ $INC_TIME -ne 0 ]; then
export PROMPT_EPOCH="$EPOCHSECONDS"
export INC_TIME=0
fi
export COMMAND_TIME="$((PROMPT_EPOCH-LAST_EPOCH))"
export PS1="$([ $PEC -ne 0 ] && printf "\[\][\[\]$(__sig $PEC)\[\]] ")\[\][\[[3\$([ $(id -u) -eq 0 ] && printf 1 || printf 3)m\]\u\[\]@\[\]\h\[\]:\[\]\w\[\]] \[\]$(__get_cmd_time)\[[38;2;\$RANDOM;\$RANDOM;\${RANDOM}m\]\\$ \[\]"
}
export PROMPT_COMMAND=__prompt