+++ date = "2010-04-25" title = "Ruby version and gemset in your Bash prompt? Yes sir!" tags = ["Ruby", "BASH", "rvm", "gemset", "profile"] slug = "ruby-version-and-gemset-in-your-bash-prompt-yes-sir" +++ RVM is an easy way to switch between different ruby implementations and gemsets. If you don't know about it, [go check it out][1]. If you do know about, you'll know how annoying it is never to know which ruby version and gemset you're currently using. Here is a nice `.profile` hack that shows your current ruby version and optional gemset in your prompt. [1]: http://rvm.beginrescueend.com/ Firstly, add the following function to your `~/.profile`: ``` shell function rvm_version { local gemset=$(echo $GEM_HOME | awk -F'@' '{print $2}') [ "$gemset" != "" ] && gemset="@$gemset" local version=$(echo $MY_RUBY_HOME | awk -F'-' '{print $2}') [ "$version" != "" ] && version="@$version" local full="$version$gemset" [ "$full" != "" ] && echo "$full " } ``` Next, you can use this function in your prompt. Like this: ``` shell export PS1="\$(rvm_version) \w \$(parse_git_branch) \$ " ``` The results? For standard ruby 1.8.7 ``` text @1.8.7 ~ $ ``` Or with the `rails3` gemset enabled: ``` text @1.8.7@rails3 ~ $ ``` So, now you always know which ruby you're using! Happy coding!