#!/bin/bash user=`whoami` if [ "$user" = "root" ] ; then echo -e "\e[0;31m \e[0mroot user support is not yet implemented.\e[0m" exit 1 fi info="\n\e[0;32m\e[0m" question="\n\e[0;32m\e[0m" echo -e "Installing rvm source to ~/.rvm/bin/rvm..." mkdir -p ~/.rvm/src ~/.rvm/bin cp $(pwd)/bash/rvm ~/.rvm/bin/ # State what is required to use rvm echo -e "\n\e[0;32mrvm\e[0m is a shell script that allows a user to manage multiple ruby versions in their own account." echo -e "$info In order to use rvm two items must occur in your shell's load paths:" echo -e "\n\e[0;32m (a)\e[0m if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi" echo -e "\e[0;32m (b)\e[0m if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi" echo -n -e "$question Would you like (u)s to set this up for you, or do it (y)ourself (u/y)? " while : ; do read response if [ "${response:0:1}" = "u" ] ; then echo 'w00t!' break elif [ "${response:0:1}" = "f" ] ; then echo -e "$info Please make sure that both lines (a) and (b) are in place, with (a) sourced *first*." break else echo -n -e "$question Would you like (u)s to set this up for you, or do it yoursel(f) (u/f)? " fi done if [ "${response:0:1}" = "u" ] ; then # Find out the user's shell bash / zsh echo -n -e "$question Do you use (b)ash or (z)sh for your shell (the default on most *nix systems is bash, press control + C to cancel the installation)\n(b/z) ? " while : ; do read response if [ "${response:0:1}" = "b" ] ; then user_shell="bash" break elif [ "${response:0:1}" = "z" ] ; then user_shell="zsh" break else echo -n -e "$question Do you use (b)ash or (z)sh for your shell (the default on most *nix systems is bash, press control + C to cancel the installation)\n(b/z) ? " fi done touch ~/.profile if [ "$user_shell" = "bash" ] ; then touch ~/.bash_profile if [ -z "`grep '\.rvm/bin/rvm' ~/.bash_profile`" ] ; then echo "Adding 'if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi' to your ~/.bash_profile." echo "if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi" >> ~/.bash_profile fi if [ -z "`grep '\.rvm/current' ~/.bash_profile`" ] ; then echo "Adding 'if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi' ~/.bash_profile." echo "if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi" >> ~/.bash_profile fi elif [ "$user_shell" = "zsh" ] ; then touch ~/.zshrc if [ -z "`grep '\.rvm/bin/rvm' ~/.zshrc`" ] ; then echo "Adding 'if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi' to your ~/.zshrc." echo "if [ -f ~/.rvm/bin/rvm ] ; then source ~/.rvm/bin/rvm ; fi" >> ~/.zshrc fi if [ -z "`grep '\.rvm/current' ~/.zshrc`" ] ; then echo "Adding 'if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi' ~/.zshrc." echo "if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi" >> ~/.zshrc fi else echo -e "\n\e[0;31m An error has occurred, we were expecting either bash or zsh however we encountered $user_shell \e[0m" return 1 fi fi echo -e "\n$info If you add ~/.rvm/bin/ to your path you will be able to rever to installed ruby binaries using: -p" echo -e " For example: ~/.ruby-1.9.1p243 -e 'puts \"hello world\"' #=> hello world" echo -e "$info Contact wayneeseguin on irc.freenod.net in #rvm for any questions / feedback." echo -e " I truely hope that you find rvm helpful! Thank you very much for using rvm. \n" echo -e " ~ Wayne" echo -e "$info To start using rvm see: \e[0;32m rvm usage\e[0m, Now close this login shell and open a new one."