Versión de ruby en el prompt

by Gastón Ramos

Hace un tiempito que vengo usando ruby version manager (rvm) para los proyectos en los que estoy trabajando, una de las cosas que uso es .rvmrc en cada proyecto entonces cuando entro a la carpeta de un proyecto en particular la version de ruby se setea automáticamente, pero hay veces que esto no funciona (por ejemplo cuando abro una nueva terminal con ctrl + t estando ya parado en la carpeta en cuestión) o hay veces que creo que estoy usando una determinada versión de ruby cuando en realidad estoy usando otra (por esto del rvm) entonces lo que hice es agregar la version de ruby al prompt.

Primero cree la función que parsea la versión de ruby, para esto editamos el ~/.bash_profile


function parse_ruby_version {
  ruby -v | cut -d" " -f2
}

Y luego muestro esa función en mi prompt


PS1="${TITLEBAR}\

$BLUE[$LIGHT_GREEN\u$WHITE@\h:$LIGHT_GRAY\w$RED \ 
\$(parse_ruby_version)$LIGHT_GREEN\$(parse_git_branch)$BLUE]\
$GREEN\$ $LIGHT_GRAY"

Cómo pueden ver yo además de la versión de ruby, tengo el branch de git del repo con el que estoy trabajando, acá les dejo la versión completa:



unction parse_git_branch {
  git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}

function parse_ruby_version {
  ruby -v | cut -d" " -f2
}
function proml {
  local        BLUE="\[33[0;34m\]"
  local         RED="\[33[0;31m\]"
  local   LIGHT_RED="\[33[1;31m\]"
  local       GREEN="\[33[0;32m\]"
  local LIGHT_GREEN="\[33[1;32m\]"
  local       WHITE="\[33[1;37m\]"
  local  LIGHT_GRAY="\[33[0;37m\]"
  case $TERM in
    xterm*)
    TITLEBAR='\[33]0;\u@\h:\w07\]'
    ;;
    *)
    TITLEBAR=""
    ;;
  esac

PS1="${TITLEBAR}\

$BLUE[$LIGHT_GREEN\u$WHITE@\h:$LIGHT_GRAY\w$RED \ 
\$(parse_ruby_version)$LIGHT_GREEN\$(parse_git_branch)$B\
LUE]\                                                                                                    
$GREEN\$ $LIGHT_GRAY"
PS2='> '
PS4='+ '
}
export PROMPT_DIRTRIM=2
proml