1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #!/bin/bash
- ##################################################
- # Fancy PWD display function
- ##################################################
- # The home directory (HOME) is replaced with a ~
- # The last pwdmaxlen characters of the PWD are displayed
- # Leading partial directory names are striped off
- # /home/me/stuff -> ~/stuff if username=me
- # /usr/share/big_dir_name -> ../share/big_dir_name if pwdmaxlen=20
- ##################################################
- rewrite_pwd()
- {
- # how many characters of the $PWD should be kept
- local pwdmaxlen=25
- # indicate that there has been dir truncation
- local trunc_symbol=".."
- local dir=${PWD##*/}
- pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen ))
- NEW_PWD=${PWD/$HOME/~}
- local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen ))
- if [ ${pwdoffset} -gt "0" ]
- then
- NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen}
- NEW_PWD=${trunc_symbol}/${NEW_PWD#*/}
- fi
- }
- # rewrites the PS1 bash prompt var
- rewrite_prompt()
- {
- local NONE='\[\033[0m\]' # unsets color to term's fg color
- # regular colors
- local K='\[\033[0;30m\]' # black
- local R='\[\033[0;31m\]' # red
- local G='\[\033[0;32m\]' # green
- local Y='\[\033[0;33m\]' # yellow
- local B='\[\033[0;34m\]' # blue
- local M='\[\033[0;35m\]' # magenta
- local C='\[\033[0;36m\]' # cyan
- local W='\[\033[0;37m\]' # white
- # empahsized (bolded) colors
- local EMK='\[\033[1;30m\]'
- local EMR='\[\033[1;31m\]'
- local EMG='\[\033[1;32m\]'
- local EMY='\[\033[1;33m\]'
- local EMB='\[\033[1;34m\]'
- local EMM='\[\033[1;35m\]'
- local EMC='\[\033[1;36m\]'
- local EMW='\[\033[1;37m\]'
- # background colors
- local BGK='\[\033[40m\]'
- local BGR='\[\033[41m\]'
- local BGG='\[\033[42m\]'
- local BGY='\[\033[43m\]'
- local BGB='\[\033[44m\]'
- local BGM='\[\033[45m\]'
- local BGC='\[\033[46m\]'
- local BGW='\[\033[47m\]'
- local UC=$C # username's color
- [ $UID -eq "0" ] && UC=$R # root's color
- # rewrite prompt
- PS1="${R}\${__prompt_environment}${W}[\\t] ${G}\u@\h> \${NEW_PWD} ${C}\$(git_branch)\${NONE}${NONE}\n$ "
- }
- # adds ~/.ssh/config to the ssh autocomplete
- ssh_load_autocomplete()
- {
- complete -W "$(awk '/^\s*Host\s*/ { sub(/^\s*Host /, ""); print; }' ~/.ssh/config)" ssh
- }
- # adds Git autocompletion
- if [ -f ~/.bin/git-completion.bash ]; then
- . ~/.bin/git-completion.bash
- fi
- PROMPT_COMMAND=rewrite_pwd
- rewrite_prompt
|