⚡ bash, geany, vim, README.md
This commit is contained in:
@@ -1,66 +1,87 @@
|
||||
function setPromt {
|
||||
setPrompt() {
|
||||
if [ "$color_prompt" != yes ]; then
|
||||
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND}"
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
return
|
||||
fi
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
;;
|
||||
*)
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
return
|
||||
;;
|
||||
xterm*|rxvt*)
|
||||
;;
|
||||
*)
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
return
|
||||
;;
|
||||
esac
|
||||
PROMPT_COMMAND=updatePromt
|
||||
PROMPT_COMMAND="updatePrompt${PROMPT_COMMAND:+; $PROMPT_COMMAND}"
|
||||
PS2="|"
|
||||
}
|
||||
function updatePromt {
|
||||
updatePrompt() {
|
||||
local prev_exit="$?"
|
||||
# history -n; history -w; history -c; history -r;
|
||||
# color_helper_>>color<< (Note: \[\]= escaping)
|
||||
local chR="\[\e[1;91m\]" #red
|
||||
local chR="\[\033[1;91m\]" #red
|
||||
local chW="\[\033[00m\]" #white
|
||||
local chG="\[\033[01;32m\]" #green
|
||||
local chB="\[\033[0;34m\]" #blue
|
||||
local chP="\[\033[0;35m\]" #purple
|
||||
local chY="\[\033[0;33m\]" #yellow
|
||||
PS1=""
|
||||
if [ $prev_exit == 0 ]; then
|
||||
if [ "$prev_exit" -eq 0 ]; then
|
||||
PS1+="$chG✓ $chW"
|
||||
else
|
||||
PS1+="$chR✗ $chW"
|
||||
fi
|
||||
local jobs="$(jobs | wc -l)"
|
||||
if [ $jobs != 0 ]; then
|
||||
local jobs
|
||||
jobs="$(jobs -p | wc -w)"
|
||||
[ "$jobs" -ne 0 ] && \
|
||||
PS1+="${chY}≡$jobs$chW"
|
||||
fi
|
||||
PS1+="${debian_chroot:+($debian_chroot)}"
|
||||
PS1+=" At ${chG}\A${chW}"
|
||||
PS1+=" by ${chP}\u${chW}"
|
||||
if sudo -n true 2>/dev/null; then
|
||||
sudo -n true 2>/dev/null && \
|
||||
PS1+="${chR} (sudo)${chW}"
|
||||
fi
|
||||
PS1+=" in "
|
||||
if \git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||
local branch="$(\git symbolic-ref -q HEAD)"
|
||||
local branch
|
||||
branch="$(\git symbolic-ref -q HEAD)"
|
||||
PS1+="[${branch#refs/heads/}"
|
||||
local status="$(git for-each-ref --format='%(upstream:trackshort)' refs/heads | awk '!seen[$1]++ {printf $1}')"
|
||||
status+="$(git status --porcelain | awk '!seen[$1]++ {printf $1}')"
|
||||
if [ "$statua"s ]; then
|
||||
local status
|
||||
status="$(git for-each-ref --format='%(upstream:trackshort)' "$branch" 2>/dev/null | awk '!seen[$1]++ {printf $1}')"
|
||||
status+="$(git status --porcelain 2>/dev/null | awk '!seen[$1]++ {printf $1}')"
|
||||
[ "$status" != "" ] && \
|
||||
PS1+="|$chY$status$chW"
|
||||
fi
|
||||
PS1+="] "
|
||||
fi
|
||||
PS1+="${chB}\w${chW}"
|
||||
if [ ! -z ${PS1_jaaENV+x} ]; then
|
||||
PS1+="\n$PS1_jaaENV"
|
||||
else
|
||||
PS1+="\n:"
|
||||
fi
|
||||
history -a
|
||||
PS1+="\n${PS1_jaaENV:-:}"
|
||||
}
|
||||
setPromt
|
||||
setPrompt
|
||||
unset color_prompt
|
||||
unset -f setPromt
|
||||
unset -f setPrompt
|
||||
|
||||
# vim: set filetype=sh tabstop=4 shiftwidth=4 textwidth=250 expandtab :
|
||||
PROMPT_COMMAND+='; history -a'
|
||||
§p() { # toggle promt
|
||||
if [[ "$1" == '--help' ]]; then
|
||||
\cat <<- "HELP"
|
||||
§p [--help]
|
||||
§p <…cmd>
|
||||
|
||||
Toggle <…cmd> in $PROMPT_COMMAND
|
||||
- history v1: `history -a`
|
||||
- history v2: `history -n; history -w; history -c; history -r`
|
||||
HELP
|
||||
return 0
|
||||
fi
|
||||
local cmd="$*"
|
||||
if [[ -z "$cmd" ]]; then
|
||||
declare -p PROMPT_COMMAND
|
||||
return 0
|
||||
fi
|
||||
if [[ "$PROMPT_COMMAND" == *"; $cmd"* ]]; then
|
||||
PROMPT_COMMAND="${PROMPT_COMMAND/; $cmd}"
|
||||
else
|
||||
PROMPT_COMMAND+="; $cmd"
|
||||
fi
|
||||
}
|
||||
complete -A command -A variable §p
|
||||
|
||||
# vim: set filetype=sh tabstop=4 shiftwidth=4 textwidth=250 :
|
||||
|
||||
Reference in New Issue
Block a user