scripts/rvm-install in rvm-0.0.74 vs scripts/rvm-install in rvm-0.0.75
- old
+ new
@@ -1,125 +1,115 @@
#!/bin/bash
-user="$(whoami)"
-if [[ "root" = "$user" ]] ; then
- echo -e "$(tput setaf 1) <e> root user support is not yet implemented.$(tput sgr0)"
- exit 1
+rc_files="$HOME/.bash_profile $HOME/.bashrc $HOME/.zshrc"
+if [[ "root" = "$(whoami)" ]] ; then
+ rvm_path=/usr/local/rvm
+ rc_files="$rc_files /etc/profile /etc/zshenv"
+else
+ rvm_path=$HOME/.rvm
fi
+#
+# Setup
+#
item="$(tput setaf 2)* $(tput sgr0)"
question="\n$(tput setaf 2)<?>$(tput sgr0)"
cwd=$(pwd)
source_dir="${source_dir:-"$(dirname $0 | xargs dirname)"}"
if [[ ! -d "$source_dir" ]] ; then unset source_dir ; fi
source_dir="${source_dir:-$cwd}"
-rvm_path=~/.rvm
# State what is required to use rvm
echo -e "\n$(tput setaf 2)rvm$(tput sgr0)\n\n shell scripts that allows a user to manage multiple ruby versions in their own account."
-echo -e "\n Installing rvm to ~/.rvm/ ..."
+echo -e "\n Installing rvm to $rvm_path ..."
for dir_name in src scripts bin log archives config gems examples ; do
- mkdir -p $rvm_path/$dir_name
+ mkdir -p "$rvm_path/$dir_name"
done
+cp -f "$source_dir/README" "$rvm_path/"
+#
+# Scripts
+#
rm -rf $rvm_path/scripts # Clear the old scripts directory so that the old style rvm- scripts are cleared out.
for dir_name in config scripts examples lib ; do
mkdir -p "$rvm_path/$dir_name"
cp -Rf "$source_dir/$dir_name" "$rvm_path"
done ; unset dir_name
-for file_name in rvm-prompt gemsync ; do
- mv $rvm_path/scripts/$file_name $rvm_path/bin/
- chmod +x $rvm_path/bin/$file_name
-done ; unset file_name
+#
+# Bin Scripts
+#
+cp -Rf "$source_dir/binscripts" $rvm_path/bin
+chmod +x $rvm_path/bin/*
+ln -nfs $rvm_path/scripts/rvm $rvm_path/bin/rvm
-cp -f $source_dir/README $rvm_path/
-
+#
+# RC Files
+#
if [[ -z "$rvm_loaded_flag" ]] ; then
- for rcfile in .bash_profile .bashrc .zshrc ; do
- if [[ ! -e ~/$rcfile ]] ; then touch ~/$rcfile ; fi
- if [[ -z "$(awk '/\.rvm\/scripts\/rvm/' ~/$rcfile)" ]] ; then
- echo "Adding 'if [[ -s ~/.rvm/scripts/rvm ]] ; then source ~/.rvm/scripts/rvm ; fi' to your ~/$rcfile."
- echo -e "\n# rvm-install added line:\nif [[ -s ~/.rvm/scripts/rvm ]] ; then source ~/.rvm/scripts/rvm ; fi\n" >> ~/$rcfile
+ for rcfile in $(echo $rc_files) ; do
+ if [[ ! -f $rcfile ]] ; then touch $rcfile ; fi
+ if [[ -z "$(awk '/\.rvm\/scripts\/rvm/' $rcfile)" ]] ; then
+ echo " Adding 'if [[ -s $rvm_path/scripts/rvm ]] ; then source $rvm_path/scripts/rvm ; fi' to $rcfile."
+ echo -e "\n# rvm-install added line:\nif [[ -s $rvm_path/scripts/rvm ]] ; then source $rvm_path/scripts/rvm ; fi\n" >> $rcfile
fi
done
fi
-echo -e "\n Ensuring that rvm script location in $file is scripts/rvm not bin/rvm for: ~/.bash_profile, ~/.bashrc, ~/.zshrc..."
-for file in ~/.bash_profile ~/.bashrc ~/.zshrc ; do
- if [[ -s $file ]] ; then
- if [[ -L $file ]] ; then # If the file is a symlink,
- actual_file="$(readlink $file)" # read the link target so we can preserve it.
- else
- actual_file="$file"
- fi
-
- grep 'rvm\/bin\/rvm' "$actual_file" > /dev/null
- if [[ $? -eq 0 ]] ; then
- sed -i.orig 's#rvm/bin/rvm #rvm/scripts/rvm #g' "$actual_file"
- rm -f "$actual_file.orig"
- fi
-
- if [[ -f ~/.profile ]] ; then
- grep '.profile' "$actual_file" > /dev/null
- if [[ $? -gt 0 ]] ; then
- profile=~/.profile
- echo -e "\nsource ${profile}" >> "$actual_file"
- fi
- fi
- fi
-done
-
-if [[ -f ~/.rvm/bin/rvm ]] ; then
- echo -e "\n Removing old rvm file from ~/.rvm/bin/rvm..."
- rm -f ~/.rvm/bin/rvm
+if [[ "root" = "$(whoami)" ]] ; then
+ ln -nfs $rvm_path/scripts/rvm /usr/local/bin/rvm
+ chmod +x /usr/local/bin/rvm
fi
+#
+# System Checks
+#
system="$(uname)"
echo -e "\n $(tput setaf 3)NOTES: $(tput sgr0)\n"
if [[ "Linux" = "$system" ]] ; then
rvm_apt_get_binary="$(which aptitude 2> /dev/null)"
rvm_emerge_binary="$(which emerge 2> /dev/null)"
rvm_pacman_binary="$(which pacman 2> /dev/null)"
rvm_yum_binary="$(which yum 2> /dev/null)"
if [[ ! -z "$rvm_apt_get_binary" ]] ; then
- echo -e " $item For jRuby (if you wish to use it) you will need:"
- echo -e " $ sudo aptitude install sun-java6-bin sun-java6-jre sun-java6-jdk"
- echo -e " $item For ree (if you wish to use it) you will need:"
- echo -e " $ sudo aptitude install libreadline5-dev libssl-dev bison"
- echo -e " $item For 1.9.X (if you wish to use it) we additionally recommend:"
- echo -e " $ sudo aptitude install libxml2-dev"
+ echo -e " $item For jRuby (if you wish to use it) you will need:"
+ echo -e " $ sudo aptitude install sun-java6-bin sun-java6-jre sun-java6-jdk"
+ echo -e " $item For ree (if you wish to use it) you will need:"
+ echo -e " $ sudo aptitude install libreadline5-dev libssl-dev bison"
+ echo -e " $item For 1.9.X (if you wish to use it) we additionally recommend:"
+ echo -e " $ sudo aptitude install libxml2-dev"
elif [[ ! -z "$rvm_emerge_binary" ]] ; then
- echo -e " $item For jRuby (if you wish to use it) you will need:"
- echo -e " $ sudo emerge dev-java/sun-jdk dev-java/sun-jre-bin"
+ echo -e " $item For jRuby (if you wish to use it) you will need:"
+ echo -e " $ sudo emerge dev-java/sun-jdk dev-java/sun-jre-bin"
elif [[ ! -z "$rvm_pacman_binary" ]] ; then
- echo -e " $item For jRuby (if you wish to use it) you will need:"
- echo -e " $ sudo pacman -Sy jdk jre"
+ echo -e " $item For jRuby (if you wish to use it) you will need:"
+ echo -e " $ sudo pacman -Sy jdk jre"
elif [[ ! -z "$rvm_yum_binary" ]] ; then
- echo -e " $item For ree (if you wish to use it) you will need:"
- echo -e " $ yum install -y rpm-build gcc gcc-c++ redhat-rpm-config ; then download and rpmbuild and install the sdk, Have fun..."
+ echo -e " $item For ree (if you wish to use it) you will need:"
+ echo -e " $ yum install -y rpm-build gcc gcc-c++ redhat-rpm-config ; then download and rpmbuild and install the sdk, Have fun..."
else
- echo -e " $item For jRuby (if you wish to use it) you will need:"
- echo -e " The SUN java runtime environment and development kit."
+ echo -e " $item For jRuby (if you wish to use it) you will need:"
+ echo -e " The SUN java runtime environment and development kit."
fi
elif [[ "Darwin" = "$system" ]] ; then
echo -e " $item Be sure that you have XCode Tools installed in order to use rvm."
echo -e " $item If you intend on installing MacRuby you must install LLVM first."
fi
echo -e " $item In order to use rvm the following line must occur in your shell's loading files, after all path/variable settings.:"
-echo -e " $item if [[ -s ~/.rvm/scripts/rvm ]] ; then source ~/.rvm/scripts/rvm ; fi"
+echo -e " $item if [[ -s $rvm_path/scripts/rvm ]] ; then source $rvm_path/scripts/rvm ; fi"
echo -e " $item CLOSE THIS SHELL AND OPEN A NEW ONE in order to use rvm."
echo -e "\n \033[0;33mRTFM: $(tput sgr0) http://rvm.beginrescueend.com/ \n"
echo -e "$(tput setaf 2)w⦿‿⦿t!$(tput sgr0)"
echo -e "\n ~ Wayne\n"
source $rvm_path/scripts/rvm
rvm -v
echo
+exit 0