Guest User

prompt

a guest
Dec 1st, 2013
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.91 KB | None | 0 0
  1. function vcs_status()
  2. {
  3.     local vcs_name=$1
  4.     local vcs_info=$2
  5.     local vcs_extra_info=$3
  6.  
  7.     local reset="\033[0m"
  8.     local bg1_to_bg2="\033[40;37m"
  9.     local bg1="\033[47;30m"
  10.     local bg2="\033[40;37m"
  11.     local to=◤
  12.  
  13.     echo -n "\n${bg1}$vcs_name $bg2 $vcs_info ${reset}\n"
  14. }
  15.  
  16. function git_status()
  17. {
  18.     #local modified=`git status | grep modified | awk '{print $3}'`
  19.     local git_branch=$(git branch --no-color 2> /dev/null || echo "")
  20.  
  21.     if [ -n "$git_branch" ]; then
  22.         vcs_status "GIT" "$git_branch"
  23.     fi
  24. }
  25.  
  26. function svn_status()
  27. {
  28.     local svn_info=$(svn info 2> /dev/null || echo "")
  29.  
  30.     if [ -n "$svn_info" ]; then
  31.         local svn_url=`echo "$svn_info" | grep URL | sed 's/URL: //'`
  32.         local svn_revision=r`echo "$svn_info" | grep Revision: | sed 's/Revision: //'`
  33.  
  34.         vcs_status "SVN" "$svn_url $svn_revision"
  35.     fi
  36. }
  37.  
  38. function prompt_host()
  39. {
  40.     if [ -n "$SSH_CLIENT" ]; then
  41.         echo "\h"
  42.     fi
  43. }
  44.  
  45. function prompt_tasks()
  46. {
  47.     if [ `jobs -p | wc -l` -gt 0 ]; then
  48.         jobs | while read job ; do
  49.             echo -n "`echo $job | awk '{print $3}'` "
  50.         done
  51.     fi
  52. }
  53.  
  54. function prompt_block()
  55. {
  56.     local text=$1
  57.     local bg1_color=$2
  58.     local bg2_color=$3
  59.  
  60.     if [ -n "$text" ]; then
  61.         local reset="\033[0m"
  62.         local bg1="\033[$bg1_color;1m"
  63.         local bg1_to_bg2="\033[$bg2_color;$(($bg1_color-10))m"
  64.  
  65.         echo -n -e "$bg1 $text ${reset}${bg1_to_bg2}${reset}"
  66.     fi
  67. }
  68.  
  69. function prompt_command()
  70. {
  71.     PS1="\n"
  72.     PS1+=$(git_status)
  73.     PS1+=$(svn_status)
  74.     PS1+=$(prompt_block "`prompt_tasks`" 45 42)
  75.     if [ -n "$SSH_CLIENT" ]; then
  76.         PS1+=$(prompt_block '\u' 42 43)
  77.         PS1+=$(prompt_block '\h' 43 44)
  78.     else
  79.         PS1+=$(prompt_block '\u' 42 44)
  80.     fi
  81.     PS1+=$(prompt_block '\w' 44 0)
  82.     PS1+="\n\$ "
  83. }
  84.  
  85. PROMPT_COMMAND=prompt_command
Advertisement
Add Comment
Please, Sign In to add comment