rvm 0.0.24 → 0.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/rvm-install +1 -1
- data/bin/rvm-update +1 -1
- data/config/cache +23 -0
- data/{bash/rvmrc.sample → examples/rvmrc} +2 -0
- data/rvm.gemspec +8 -7
- data/scripts/rvm +1064 -0
- data/scripts/rvm-install +101 -0
- data/scripts/rvm-update +75 -0
- metadata +7 -6
- data/bash/rvm +0 -852
- data/bash/rvm-install +0 -111
- data/bash/rvm-update +0 -22
data/scripts/rvm-install
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
user=`whoami`
|
4
|
+
if [ "$user" = "root" ] ; then
|
5
|
+
echo -e "\033[0;31m <e> \033[0mroot user support is not yet implemented.\033[0m"
|
6
|
+
exit 1
|
7
|
+
fi
|
8
|
+
|
9
|
+
info="\n\033[0;32m<i>\033[0m"
|
10
|
+
question="\n\033[0;32m<?>\033[0m"
|
11
|
+
|
12
|
+
echo -e "Installing rvm source to ~/.rvm/scripts/rvm..."
|
13
|
+
cwd=$(pwd)
|
14
|
+
rvm_dir=~/.rvm
|
15
|
+
mkdir -p $rvm_dir
|
16
|
+
|
17
|
+
for dir in src scripts bin log archives config gems examples ; do
|
18
|
+
mkdir -p $rvm_dir/$dir
|
19
|
+
done
|
20
|
+
|
21
|
+
for file in ~/.bash_profile ~/.bashrc ~/.zshrc ; do
|
22
|
+
if [ -s $file ] ; then
|
23
|
+
echo -e "\n\033[0;33m<w>\033[0m Ensuring that rvm script location in $file is scripts/rvm not bin/rvm"
|
24
|
+
sed -i.orig 's/rvm\/bin\/rvm/rvm\/scripts\/rvm/g' $file
|
25
|
+
fi
|
26
|
+
done
|
27
|
+
|
28
|
+
if [ -f ~/.rvm/bin/rvm ] ; then
|
29
|
+
echo -e "\n\033[0;33m<w>\033[0m Removing old rvm file from ~/.rvm/bin/rvm"
|
30
|
+
rm -f ~/.rvm/bin/rvm
|
31
|
+
fi
|
32
|
+
|
33
|
+
for dir in scripts examples ; do
|
34
|
+
mkdir -p $rvm_dir/$dir
|
35
|
+
for file in `/bin/ls $dir/`; do
|
36
|
+
cp $cwd/$dir/$file $rvm_dir/$dir/$file
|
37
|
+
done
|
38
|
+
done
|
39
|
+
|
40
|
+
# State what is required to use rvm
|
41
|
+
echo -e "\n\033[0;32mrvm\033[0m is a shell script that allows a user to manage multiple ruby versions in their own account."
|
42
|
+
echo -e "$info In order to use rvm the following line must occur in your shell's loading files:"
|
43
|
+
echo -e "\n\033[0;32m (a)\033[0m if [ -s ~/.rvm/scripts/rvm ] ; then source ~/.rvm/scripts/rvm ; fi"
|
44
|
+
|
45
|
+
while : ; do
|
46
|
+
echo -n -e "$question Do you want this (s)cript to set this up for you, or do it (m)anually yourself ('s' or 'm')? "
|
47
|
+
read response
|
48
|
+
if [ "${response:0:1}" = "s" ] ; then
|
49
|
+
echo 'w00t!'
|
50
|
+
break
|
51
|
+
elif [ "${response:0:1}" = "m" ] ; then
|
52
|
+
echo -e "$info Please make sure that this line is in place."
|
53
|
+
break
|
54
|
+
fi
|
55
|
+
done
|
56
|
+
|
57
|
+
if [ "${response:0:1}" = "s" ] ; then
|
58
|
+
|
59
|
+
while : ; do
|
60
|
+
echo -n -e "$question Do you use b(a)sh or (z)sh or b(o)th for your shell (the default on most *nix systems is bash, press control + C to cancel the installation)\n(a/z/o)? "
|
61
|
+
read response
|
62
|
+
if [ "${response:0:1}" = "a" ] ; then
|
63
|
+
user_shell="bash"
|
64
|
+
break
|
65
|
+
elif [ "${response:0:1}" = "z" ] ; then
|
66
|
+
user_shell="zsh"
|
67
|
+
break
|
68
|
+
elif [ "${response:0:1}" = "o" ] ; then
|
69
|
+
user_shell="both"
|
70
|
+
break
|
71
|
+
fi
|
72
|
+
done
|
73
|
+
|
74
|
+
if [ "$user_shell" = "bash" -o "$user_shell" = "both" ] ; then
|
75
|
+
|
76
|
+
touch ~/.bash_profile
|
77
|
+
if [ -z "`grep '\.rvm/scripts/rvm' ~/.bash_profile`" ] ; then
|
78
|
+
echo "Adding 'if [ -s ~/.rvm/scripts/rvm ] ; then source ~/.rvm/scripts/rvm ; fi' to your ~/.bash_profile."
|
79
|
+
echo "if [ -s ~/.rvm/scripts/rvm ] ; then source ~/.rvm/scripts/rvm ; fi" >> ~/.bash_profile
|
80
|
+
fi
|
81
|
+
touch ~/.bashrc
|
82
|
+
if [ -z "`grep '\.rvm/scripts/rvm' ~/.bashrc`" ] ; then
|
83
|
+
echo "Adding 'if [ -s ~/.rvm/scripts/rvm ] ; then source ~/.rvm/scripts/rvm ; fi' to your ~/.bashrc."
|
84
|
+
echo "if [ -s ~/.rvm/scripts/rvm ] ; then source ~/.rvm/scripts/rvm ; fi" >> ~/.bashrc
|
85
|
+
fi
|
86
|
+
|
87
|
+
fi
|
88
|
+
|
89
|
+
if [ "$user_shell" = "zsh" -o "$user_shell" = "both" ] ; then
|
90
|
+
|
91
|
+
touch ~/.zshrc
|
92
|
+
if [ -z "`grep '\.rvm/scripts/rvm' ~/.zshrc`" ] ; then
|
93
|
+
echo "Adding 'if [ -s ~/.rvm/scripts/rvm ] ; then source ~/.rvm/scripts/rvm ; fi' to your ~/.zshrc."
|
94
|
+
echo "if [ -s ~/.rvm/scripts/rvm ] ; then source ~/.rvm/scripts/rvm ; fi" >> ~/.zshrc
|
95
|
+
fi
|
96
|
+
fi
|
97
|
+
|
98
|
+
fi
|
99
|
+
|
100
|
+
source $rvm_dir/scripts/rvm-update
|
101
|
+
|
data/scripts/rvm-update
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
user=`whoami`
|
4
|
+
if [ "$user" = "root" ] ; then
|
5
|
+
echo -e "\033[0;31m <e> \033[0mroot user support is not implemented yet.\033[0m"
|
6
|
+
exit 1
|
7
|
+
fi
|
8
|
+
cwd=$(pwd)
|
9
|
+
rvm_dir=~/.rvm
|
10
|
+
|
11
|
+
info="\n\033[0;32m<i>\033[0m"
|
12
|
+
|
13
|
+
echo -e "$info Updating rvm source ~/.rvm/scripts/rvm ..."
|
14
|
+
for dir in src scripts bin log archives config gems examples ; do
|
15
|
+
mkdir -p $rvm_dir/$dir
|
16
|
+
done
|
17
|
+
|
18
|
+
for file in ~/.bash_profile ~/.bashrc ~/.zshrc ; do
|
19
|
+
if [ -s $file ] ; then
|
20
|
+
echo -e "\n\033[0;33m<w>\033[0m Ensuring that rvm script location in $file is scripts/rvm not bin/rvm"
|
21
|
+
sed -i.orig 's/rvm\/bin\/rvm/rvm\/scripts\/rvm/g' $file
|
22
|
+
fi
|
23
|
+
done
|
24
|
+
|
25
|
+
if [ -f ~/.rvm/bin/rvm ] ; then
|
26
|
+
echo -e "\n\033[0;33m<w>\033[0m Removing old rvm file from ~/.rvm/bin/rvm"
|
27
|
+
rm -f ~/.rvm/bin/rvm
|
28
|
+
fi
|
29
|
+
|
30
|
+
for dir in scripts examples ; do
|
31
|
+
mkdir -p $rvm_dir/$dir
|
32
|
+
for file in `/bin/ls $dir/`; do
|
33
|
+
cp $cwd/$dir/$file $rvm_dir/$dir/$file
|
34
|
+
done
|
35
|
+
done
|
36
|
+
|
37
|
+
system=`uname`
|
38
|
+
if [ "$system" = "Linux" ] ; then
|
39
|
+
rvm_apt_get_binary=`which apt-get`
|
40
|
+
rvm_emerge_binary=`which emerge`
|
41
|
+
rvm_pacman_binary=`which pacman`
|
42
|
+
rvm_yum_binary=`which yum`
|
43
|
+
|
44
|
+
echo -e "\033[0;33m <w> \033[0mFor jRuby & ree (if you wish to use it) you will need:"
|
45
|
+
if [ ! -z "$rvm_apt_get_binary" ] ; then
|
46
|
+
echo -e "\033[0;32m <i> \033[0msudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk libreadline5-dev libssl-dev "
|
47
|
+
|
48
|
+
elif [ ! -z "$rvm_emerge_binary" ] ; then
|
49
|
+
echo -e "\033[0;32m <i> \033[0msudo emerge dev-java/sun-jdk dev-java/sun-jre-bin"
|
50
|
+
|
51
|
+
elif [ ! -z "$rvm_pacman_binary" ] ; then
|
52
|
+
echo -e "\033[0;32m <i> \033[0msudo pacman -Sy jdk jre"
|
53
|
+
|
54
|
+
elif [ ! -z "$rvm_yum_binary" ] ; then
|
55
|
+
echo -e "\033[0;32m <i> \033[0myum install -y rpm-build gcc gcc-c++ redhat-rpm-config ; then download and rpmbuild and install the sdk, Have fun..."
|
56
|
+
|
57
|
+
else
|
58
|
+
echo -e "\033[0;32m <i> \033[0mThe SUN java runtime environment and development kit."
|
59
|
+
fi
|
60
|
+
elif [ "$sytem" = "Darwin" ] ; then
|
61
|
+
echo -e "\033[0;32m <i> \033[0mIf you intend on installing MacRuby you must install LLVM first."
|
62
|
+
fi
|
63
|
+
|
64
|
+
echo -e "$info There have been a great many updates since previous releases, please:"
|
65
|
+
echo -e "$info * remove sourcing of ~/.rvm/current from your shell profiles."
|
66
|
+
echo -e "$info * note that gems are now all pulled into ~/.rvm/gems/"
|
67
|
+
|
68
|
+
echo -e "\n Thank you, come again! \n"
|
69
|
+
echo -e " ~ Wayne"
|
70
|
+
|
71
|
+
source $rvm_dir/scripts/rvm
|
72
|
+
rvm symlinks
|
73
|
+
echo
|
74
|
+
rvm -v
|
75
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rvm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wayne E. Seguin
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-08-
|
12
|
+
date: 2009-08-30 00:00:00 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -26,12 +26,13 @@ files:
|
|
26
26
|
- INSTALL
|
27
27
|
- LICENCE
|
28
28
|
- README
|
29
|
-
-
|
30
|
-
-
|
31
|
-
- bash/rvm-update
|
32
|
-
- bash/rvmrc.sample
|
29
|
+
- config/cache
|
30
|
+
- examples/rvmrc
|
33
31
|
- lib/rvm.rb
|
34
32
|
- rvm.gemspec
|
33
|
+
- scripts/rvm
|
34
|
+
- scripts/rvm-install
|
35
|
+
- scripts/rvm-update
|
35
36
|
has_rdoc: true
|
36
37
|
homepage: http://github.com/wayneeseguin/rvm
|
37
38
|
licenses: []
|
data/bash/rvm
DELETED
@@ -1,852 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
rvm_meta_author="Wayne E. Seguin"
|
4
|
-
rvm_meta_author_email="wayneeseguin@gmail.com"
|
5
|
-
rvm_meta_website="http://rvm.beginrescueend.com/"
|
6
|
-
rvm_meta_version="0.0.24"
|
7
|
-
rvm_meta_updated="2009.08.25"
|
8
|
-
|
9
|
-
#
|
10
|
-
# License: See LICENSE
|
11
|
-
#
|
12
|
-
|
13
|
-
#
|
14
|
-
# Functions
|
15
|
-
#
|
16
|
-
function rvm-usage {
|
17
|
-
|
18
|
-
cat <<-Usage
|
19
|
-
|
20
|
-
About:
|
21
|
-
|
22
|
-
rvm ${rvm_version} ${rvm_website}
|
23
|
-
|
24
|
-
by ${rvm_author} (${rvm_author_email})
|
25
|
-
|
26
|
-
Installation:
|
27
|
-
|
28
|
-
$ gem install rvm # Install the rvm gem
|
29
|
-
$ rvm-install # Install rvm, adds hooks for bash & zsh
|
30
|
-
|
31
|
-
Usage:
|
32
|
-
|
33
|
-
rvm Action [Implementation] [Options]
|
34
|
-
|
35
|
-
Action:
|
36
|
-
|
37
|
-
* usage - Show this usage information
|
38
|
-
use - Switch to using a specific ruby version (new login shell)
|
39
|
-
info - Show information for current ruby
|
40
|
-
list - Show currently installed versions
|
41
|
-
gemdir - Switch to gem directory for installation (new login shell)
|
42
|
-
srcdir - Switch to src directory for the current ruby installation
|
43
|
-
gemdup - Clone source version gems to current version
|
44
|
-
(highly expiramental) Example: rvm gemdup ~/.gem/ruby/1.8/
|
45
|
-
install - Install a ruby version, default is from source
|
46
|
-
uninstall - Uninstall a ruby version
|
47
|
-
reset - Remove default and current settings, exit the shell.
|
48
|
-
(If you experience odd behavior try this first)
|
49
|
-
reload - Reload rvm source itself (useful after changing rvm source)
|
50
|
-
debug - Emit environment & configuration information for *current* ruby
|
51
|
-
|
52
|
-
Implementation:
|
53
|
-
|
54
|
-
* ruby - MRI/YARV Ruby (The Standard), defaults to 1.8.6
|
55
|
-
jruby - jRuby
|
56
|
-
ree - Ruby Enterprise Edition
|
57
|
-
default - Resets to the default system ruby
|
58
|
-
all - Used with install, installs all latest known versions
|
59
|
-
|
60
|
-
Options:
|
61
|
-
|
62
|
-
-v|--version - Ruby Package Version, defaults to 'latest'
|
63
|
-
-l|--level - Patch level for the specified Ruby version
|
64
|
-
-p|--prefix - Package and source directory prefix, with trailing slash!
|
65
|
-
Default is a users home directory and /usr/local/ for root
|
66
|
-
-c|--configure - Options for source compile (default: --enable-shared)
|
67
|
-
-a|--archives - Directory to place downladed files into (~/.rvm/archives/)
|
68
|
-
-n|--nice - Niceness level (default: 0)
|
69
|
-
-d|--debug - Toggle debug mode on for extra messages (NYI)
|
70
|
-
|
71
|
-
Notes:
|
72
|
-
|
73
|
-
* Defaults above are denoted with a '*' prefix.
|
74
|
-
* rvm is intended to be run as an individual user (not root, yet)
|
75
|
-
* All ruby installation, configuration and source files are in ~/.rvm
|
76
|
-
|
77
|
-
Examples:
|
78
|
-
|
79
|
-
$ rvm -v # RVM version
|
80
|
-
$ rvm list # available rvm versions
|
81
|
-
$ rvm info # ruby information for current shell
|
82
|
-
$ rvm install jruby # Install jRuby (default version is 1.3.1)
|
83
|
-
$ rvm use ruby -v 1.9.1 # Use Ruby 1.9.1, installs if necessary
|
84
|
-
$ rvm use 1.9 # Equivalent to above, due to defaults
|
85
|
-
$ rvm use 1.8 # Use Ruby 1.8.6, installs if necessary
|
86
|
-
$ rvm gemdir # Switch to gems directory for current ruby
|
87
|
-
$ rvm gemdir system # Switch to the system gems directory
|
88
|
-
$ rvm gemdir system user # Switch to the system user gems directory
|
89
|
-
$ rvm gemdir ruby 1.9 # Switch to gems directory for ruby 1.9.1
|
90
|
-
$ rvm use default # Use the system default (as if no rvm)
|
91
|
-
$ rvm reset # Reset to pre-rvm state.
|
92
|
-
$ rvm uninstall 1.8.7 # Uninstall rvm installed 1.8.7 version
|
93
|
-
$ rvm gemdup default # Install gems from ~/.gem/ruby/1.8/
|
94
|
-
|
95
|
-
TODO: (in order)
|
96
|
-
|
97
|
-
* rvm gemdup
|
98
|
-
* root support
|
99
|
-
* Settings file, user overridable
|
100
|
-
* Show current in rvm list, if applicable
|
101
|
-
|
102
|
-
Usage
|
103
|
-
|
104
|
-
}
|
105
|
-
|
106
|
-
# Logging functions based on level
|
107
|
-
function rvm-log { echo -e "\n $* \033[0m" ; }
|
108
|
-
function rvm-log-debug { rvm-log "\033[4;34m <d> \033[0m$*" ; }
|
109
|
-
function rvm-log-info { rvm-log "\033[0;32m <i> \033[0m$*" ; }
|
110
|
-
function rvm-log-warn { rvm-log "\033[0;33m <w> \033[0m$*" ; }
|
111
|
-
function rvm-log-error { rvm-log "\033[0;31m <e> \033[0m$*" ; }
|
112
|
-
function rvm-log-fail { rvm-log "\033[0;31m <e> \033[0m$*" ; return 1 ; }
|
113
|
-
|
114
|
-
function rvm-gi { gem install -q --no-rdoc --no-ri $* ; }
|
115
|
-
|
116
|
-
function rvm-info {
|
117
|
-
|
118
|
-
cat <<-Info
|
119
|
-
|
120
|
-
ruby:
|
121
|
-
interpreter: "$(ruby -v | awk '{print $1}')"
|
122
|
-
version: "$(ruby -v | awk '{print $2}')"
|
123
|
-
date: "$(ruby -v | sed 's/^.*(\([0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]\).*$/\1/')"
|
124
|
-
platform: "$(ruby -v | sed 's/^.*\[//' | sed 's/\].*$//')"
|
125
|
-
patchlevel: "$(ruby -v | sed 's/^.*(//' | sed 's/).*$//')"
|
126
|
-
full_version: "$(ruby -v)"
|
127
|
-
|
128
|
-
homes:
|
129
|
-
gem: "${GEM_HOME:-not set}"
|
130
|
-
ruby: "${MY_RUBY_HOME:-not set}"
|
131
|
-
|
132
|
-
binaries:
|
133
|
-
ruby: "$(which ruby)"
|
134
|
-
irb: "$(which irb)"
|
135
|
-
gem: "$(which gem)"
|
136
|
-
|
137
|
-
Info
|
138
|
-
|
139
|
-
}
|
140
|
-
|
141
|
-
function rvm-curl {
|
142
|
-
pushd $rvm_archives_path > /dev/null
|
143
|
-
eval $rvm_curl "$1"
|
144
|
-
popd > /dev/null
|
145
|
-
}
|
146
|
-
|
147
|
-
function rvm-install-source {
|
148
|
-
|
149
|
-
rvm_version="${1:-1.8.6}"
|
150
|
-
case "$rvm_version" in
|
151
|
-
1.9|1.9.1) rvm_major="1.9" ; rvm_minor="1" ; rvm_patch_level="${2:-243}" ;;
|
152
|
-
1.9.2) rvm_major="1.9" ; rvm_minor="2" ; rvm_patch_level="${2:-review1}" ;;
|
153
|
-
1.8|1.8.6) rvm_major="1.8" ; rvm_minor="6" ; rvm_patch_level="${2:-369}" ;;
|
154
|
-
1.8.7) rvm_major="1.8" ; rvm_minor="7" ; rvm_patch_level="${2:-174}" ;;
|
155
|
-
*) rvm-log-fail "Ruby version '$rvm_version' is unknown."
|
156
|
-
esac
|
157
|
-
|
158
|
-
rvm_package_name="ruby-$rvm_major.$rvm_minor-p$rvm_patch_level"
|
159
|
-
rvm_url="ftp://ftp.ruby-lang.org/pub/ruby/$rvm_major/$rvm_package_name.tar.gz"
|
160
|
-
|
161
|
-
rvm-log-info "Installing Ruby from source to: $rvm_install_path/$rvm_package_name"
|
162
|
-
mkdir -p $rvm_log_path/$rvm_package_name
|
163
|
-
|
164
|
-
pushd $rvm_source_path > /dev/null
|
165
|
-
if [ -d $rvm_source_path/$rvm_package_name ] ; then
|
166
|
-
cd $rvm_source_path/$rvm_package_name
|
167
|
-
else
|
168
|
-
if [ ! -f "$rvm_archives_path/$rvm_package_name.tar.gz" ] ; then
|
169
|
-
rvm-log-info "\tDownloading $rvm_package_name, this may take a while depending on your connection..."
|
170
|
-
rvm-curl $rvm_url
|
171
|
-
fi
|
172
|
-
rvm-log-info "\tExtracting $rvm_package_name..."
|
173
|
-
mkdir -p $rvm_source_path/$rvm_package_name
|
174
|
-
nice -n $niceness tar xzf $rvm_archives_path/$rvm_package_name.tar.gz -C $rvm_source_path
|
175
|
-
fi
|
176
|
-
|
177
|
-
cd $rvm_source_path/$rvm_package_name
|
178
|
-
rvm-log-info "\tConfiguring $rvm_package_name using ${configure:-"--enable-shared"}, this may take a while depending on your cpu(s)..."
|
179
|
-
nice -n $niceness ./configure --prefix=$rvm_install_path/$rvm_package_name ${configure:-"--enable-shared"} > $rvm_log_path/$rvm_package_name/configure.log 2> $rvm_log_path/$rvm_package_name/configure.error.log
|
180
|
-
|
181
|
-
rvm-log-info "\tCompiling $rvm_package_name, this may take a while, depending on your cpu(s)..."
|
182
|
-
nice -n $niceness make > $rvm_log_path/$rvm_package_name/make.log 2> $rvm_log_path/$rvm_package_name/make.error.log
|
183
|
-
|
184
|
-
rvm-log-info "\tInstalling $rvm_package_name"
|
185
|
-
nice -n $niceness make install > $rvm_log_path/$rvm_package_name/install.log 2> $rvm_log_path/$rvm_package_name/install.error.log
|
186
|
-
chmod +x $rvm_install_path/$rvm_package_name/bin/*
|
187
|
-
|
188
|
-
ln -fs $rvm_install_path/$rvm_package_name/bin/ruby $rvm_install_path/bin/$rvm_package_name
|
189
|
-
|
190
|
-
rvm-log-info "\tInstalling rubygems dedicated to $rvm_package_name..."
|
191
|
-
rvm_gem_package_name="rubygems-1.3.5"
|
192
|
-
rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
|
193
|
-
if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
|
194
|
-
cd $rvm_source_path/$rvm_gem_package_name
|
195
|
-
else
|
196
|
-
if [ ! -f "$rvm_archives_path/$rvm_gem_package_name.tgz" ] ; then rvm-curl $rvm_gem_url ; fi
|
197
|
-
mkdir -p $rvm_source_path/$rvm_gem_package_name
|
198
|
-
nice -n $niceness tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
|
199
|
-
fi
|
200
|
-
# Well this is fun... fix nil error on require_paths:
|
201
|
-
sed -i.orig "s/require_paths\.join/require_paths.to_a.join/" $rvm_source_path/$rvm_gem_package_name/lib/rubygems/gem_path_searcher.rb
|
202
|
-
|
203
|
-
nice -n $niceness $rvm_install_path/$rvm_package_name/bin/ruby $rvm_source_path/$rvm_gem_package_name/setup.rb > $rvm_log_path/$rvm_package_name/rubygems.install.log 2> $rvm_log_path/$rvm_package_name/rubygems.install.error.log
|
204
|
-
popd > /dev/null
|
205
|
-
rvm-log-info "Installation of $rvm_package_name complete."
|
206
|
-
|
207
|
-
for gem_name in rake ; do
|
208
|
-
rvm-log-info "Installing $gem_name"
|
209
|
-
nice -n $niceness $rvm_install_path/$rvm_package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $rvm_log_path/$rvm_package_name/gems.install.log 2> $rvm_log_path/$rvm_package_name/gems.error.log
|
210
|
-
done
|
211
|
-
}
|
212
|
-
|
213
|
-
function rvm-install-ruby {
|
214
|
-
|
215
|
-
if [ -z "$RUBYOPT" ] ; then
|
216
|
-
ruby_options=$RUBYOPT ; unset RUBYOPT
|
217
|
-
fi
|
218
|
-
|
219
|
-
case "$rvm_implementation" in
|
220
|
-
|
221
|
-
ree)
|
222
|
-
rvm_version=${rvm_version:-1.8.6}
|
223
|
-
rvm_patchlevel=${rvm_patchlevel:-20090610}
|
224
|
-
rvm_package_name="ruby-enterprise-$rvm_version-$rvm_patchlevel"
|
225
|
-
rvm_url="http://rubyforge.org/frs/download.php/58677/$rvm_package_name.tar.gz"
|
226
|
-
rvm-log-info "Installing Ruby Enterprise Edition from source to: $rvm_install_path/$rvm_package_name"
|
227
|
-
pushd $rvm_source_path > /dev/null
|
228
|
-
if [ -d $rvm_source_path/$rvm_package_name ] ; then
|
229
|
-
cd $rvm_source_path/$rvm_package_name
|
230
|
-
else
|
231
|
-
if [ ! -f "$rvm_archives_path/$rvm_package_name.tar.gz" ] ; then
|
232
|
-
rvm-log-info "\tDownloading $rvm_package_name, this may take a while depending on your connection..."
|
233
|
-
rvm-curl $rvm_url
|
234
|
-
fi
|
235
|
-
rvm-log-info "\tExtracting $rvm_package_name..."
|
236
|
-
mkdir -p $rvm_source_path/$rvm_package_name
|
237
|
-
nice -n $niceness tar xzf $rvm_archives_path/$rvm_package_name.tar.gz -C $rvm_source_path
|
238
|
-
fi
|
239
|
-
|
240
|
-
rvm-log-info "\tInstalling $rvm_package_name, this may take a while, depending on your cpu(s)..."
|
241
|
-
mkdir -p $rvm_log_path/$rvm_package_name
|
242
|
-
|
243
|
-
cd $rvm_source_path/$rvm_package_name
|
244
|
-
nice -n $niceness ./installer -a $rvm_install_path/ruby-enterprise-$rvm_version-$rvm_patchlevel --dont-install-useful-gems > $rvm_log_path/$rvm_package_name/install.log 2> $rvm_log_path/$rvm_package_name/install.error.log
|
245
|
-
chmod +x $rvm_install_path/$rvm_package_name/bin/*
|
246
|
-
|
247
|
-
ln -fs $rvm_install_path/$rvm_package_name/bin/ruby $rvm_install_path/bin/$rvm_package_name
|
248
|
-
|
249
|
-
rvm-log-info "\tInstalling rubygems dedicated to $rvm_package_name..."
|
250
|
-
rvm_gem_package_name="rubygems-1.3.5"
|
251
|
-
rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
|
252
|
-
if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
|
253
|
-
cd $rvm_source_path/$rvm_gem_package_name
|
254
|
-
else
|
255
|
-
if [ ! -f "$rvm_archives_path/$rvm_gem_package_name.tgz" ] ; then rvm-curl $rvm_gem_url ; fi
|
256
|
-
mkdir -p $rvm_source_path/$rvm_gem_package_name
|
257
|
-
nice -n $niceness tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
|
258
|
-
fi
|
259
|
-
# Well this is fun... fix nil error on require_paths:
|
260
|
-
sed -i.orig "s/require_paths\.join/require_paths.to_a.join/" $rvm_source_path/$rvm_gem_package_name/lib/rubygems/gem_path_searcher.rb > $rvm_log_path/$rvm_package_name/rubygems.install.log 2> $rvm_log_path/$rvm_package_name/rubygems.install.error.log
|
261
|
-
|
262
|
-
nice -n $niceness $rvm_install_path/$rvm_package_name/bin/ruby $rvm_source_path/$rvm_gem_package_name/setup.rb > $rvm_log_path/$rvm_package_name/rubygems.install.log 2> $rvm_log_path/$rvm_package_name/rubygems.install.error.log
|
263
|
-
rvm-log-info "Installation of $rvm_package_name complete."
|
264
|
-
popd > /dev/null
|
265
|
-
|
266
|
-
for gem_name in rake ; do
|
267
|
-
rvm-log-info "Installing $gem_name"
|
268
|
-
nice -n $niceness $rvm_install_path/$rvm_package_name/bin/gem install $gem_name --no-rdoc --no-ri -q >> $rvm_log_path/$rvm_package_name/gems.install.log 2> $rvm_log_path/$rvm_package_name/gems.error.log
|
269
|
-
done
|
270
|
-
;;
|
271
|
-
|
272
|
-
jruby)
|
273
|
-
rvm_version=${rvm_version:-1.3.1} # 1.2.0, 1.3.1
|
274
|
-
unset rvm_patchlevel # No patchlevel for jRuby
|
275
|
-
rvm_package_file="$rvm_implementation-bin-$rvm_version"
|
276
|
-
rvm_package_name="$rvm_implementation-$rvm_version"
|
277
|
-
rvm_url="http://dist.codehaus.org/$rvm_implementation/$rvm_version/$rvm_package_file.zip"
|
278
|
-
|
279
|
-
rvm-log-info "Installing jRuby to: $rvm_install_path/$rvm_package_name"
|
280
|
-
mkdir -p $rvm_log_path/$rvm_package_name
|
281
|
-
pushd $rvm_source_path > /dev/null
|
282
|
-
if [ -d $rvm_package_name ] ; then
|
283
|
-
cd $rvm_source_path/$rvm_package_name
|
284
|
-
else
|
285
|
-
if [ ! -f "$rvm_archives_path/$rvm_package_file.zip" ] ; then
|
286
|
-
rvm-log-info "\tDownloading $rvm_package_file, this may take a while depending on your connection..."
|
287
|
-
rvm-curl $rvm_url
|
288
|
-
fi
|
289
|
-
rvm-log-info "\tExtracting $rvm_package_file..."
|
290
|
-
nice -n $niceness unzip -q $rvm_archives_path/$rvm_package_file.zip -d $rvm_source_path
|
291
|
-
fi
|
292
|
-
|
293
|
-
rvm-log-info "\tInstalling $rvm_package_name..."
|
294
|
-
mkdir -p $rvm_install_path/$rvm_package_name/bin/
|
295
|
-
rsync -ag $rvm_source_path/$rvm_package_name/ $rvm_install_path/$rvm_package_name/
|
296
|
-
cd $rvm_source_path/$rvm_package_name/tool/nailgun && make > $rvm_log_path/$rvm_package_name/install.nailgun.log 2> $rvm_log_path/$rvm_package_name/install.error.nailgun.log
|
297
|
-
popd > /dev/null
|
298
|
-
chmod +x $rvm_install_path/$rvm_package_name/bin/*
|
299
|
-
for binary in jruby jgem jirb ; do
|
300
|
-
ln -fs $rvm_install_path/$rvm_package_name/bin/$binary $rvm_install_path/$rvm_package_name/bin/${binary#j}
|
301
|
-
done
|
302
|
-
|
303
|
-
ln -fs $rvm_install_path/$rvm_package_name/bin/ruby $rvm_install_path/bin/$rvm_package_name
|
304
|
-
|
305
|
-
for gem_name in rake jruby-openssl ; do
|
306
|
-
rvm-log-info "Installing $gem_name"
|
307
|
-
nice -n $niceness $rvm_install_path/$rvm_package_name/bin/jgem install $gem_name --no-rdoc --no-ri -q >> $rvm_log_path/$rvm_package_name/gems.install.log 2> $rvm_log_path/$rvm_package_name/gems.error.log
|
308
|
-
done
|
309
|
-
;;
|
310
|
-
|
311
|
-
ruby)
|
312
|
-
rvm-install-source ${rvm_version:-1.8.6} ${rvm_patchlevel:-$3}
|
313
|
-
;;
|
314
|
-
|
315
|
-
default)
|
316
|
-
rvm-log-fail "please specify a ruby implementation to install."
|
317
|
-
;;
|
318
|
-
*) rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
|
319
|
-
|
320
|
-
esac
|
321
|
-
|
322
|
-
if [ ! -z "$ruby_options" ] ; then
|
323
|
-
RUBYOPT=$ruby_options ; export RUBYOPT
|
324
|
-
fi
|
325
|
-
|
326
|
-
}
|
327
|
-
|
328
|
-
function rvm-uninstall {
|
329
|
-
|
330
|
-
rvm_implementation="${1:-$rvm_implementation}"
|
331
|
-
case "$rvm_implementation" in
|
332
|
-
|
333
|
-
jruby)
|
334
|
-
rvm_version="${rvm_version:-1.3.1}"
|
335
|
-
if [ "$rvm_version" = "1.2.0" -o "$rvm_version" = "1.3.1" ] ; then
|
336
|
-
rvm_package_name="jruby*-$rvm_version"
|
337
|
-
else
|
338
|
-
rvm-log-fail "Unknown jRuby version: $rvm_version"
|
339
|
-
fi
|
340
|
-
;;
|
341
|
-
|
342
|
-
ree)
|
343
|
-
rvm_version=${rvm_version:-1.8.6}
|
344
|
-
if [ "$rvm_version" = "1.8.6" ] ; then
|
345
|
-
rvm_package_name="ruby-enterprise-$rvm_version-${3:-20090610}"
|
346
|
-
else
|
347
|
-
rvm-log-fail "Unknown Ruby Enterprise Edition version: $rvm_version"
|
348
|
-
fi
|
349
|
-
;;
|
350
|
-
|
351
|
-
ruby)
|
352
|
-
if [ "$rvm_version" = "1.8.7" ] ; then
|
353
|
-
rvm_package_name="ruby-1.8.7-p${rvm_patchlevel:-174}"
|
354
|
-
|
355
|
-
elif [ "$rvm_version" = "1.8.6" -o "$rvm_version" = "1.8" ] ; then
|
356
|
-
rvm_package_name="ruby-1.8.6-p${rvm_patchlevel:-369}"
|
357
|
-
|
358
|
-
elif [ "$rvm_version" = "1.9.2" ] ; then
|
359
|
-
rvm_package_name="ruby-1.9.2-p${rvm_patchlevel:-review1}"
|
360
|
-
|
361
|
-
elif [ "$rvm_version" = "1.9.1" -o "$rvm_version" = "1.9" ] ; then
|
362
|
-
rvm_package_name="ruby-1.9.1-p${rvm_patchlevel:-243}"
|
363
|
-
|
364
|
-
else
|
365
|
-
rvm-log-fail "Unknown ruby version: $rvm_version"
|
366
|
-
fi
|
367
|
-
;;
|
368
|
-
|
369
|
-
*)
|
370
|
-
rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
|
371
|
-
|
372
|
-
esac
|
373
|
-
|
374
|
-
if [ ! -z "$rvm_package_name" ] ; then
|
375
|
-
for path in $rvm_source_path $rvm_install_path ; do
|
376
|
-
if [ -d $path/$rvm_package_name ] ; then
|
377
|
-
rvm-log-info "Removing $path/$rvm_package_name..."
|
378
|
-
rm -rf $path/$rvm_package_name
|
379
|
-
fi
|
380
|
-
done
|
381
|
-
else
|
382
|
-
rvm-log-fail "Cannot uninstall unknown package '$rvm_package_name'"
|
383
|
-
fi
|
384
|
-
|
385
|
-
}
|
386
|
-
|
387
|
-
function rvm-use {
|
388
|
-
|
389
|
-
rvm_implementation="${1:-$rvm_implementation}"
|
390
|
-
case "$rvm_implementation" in
|
391
|
-
|
392
|
-
default)
|
393
|
-
rm -f $rvm_install_path/current
|
394
|
-
unset GEM_HOME MY_RUBY_HOME
|
395
|
-
source $rvm_install_path/default
|
396
|
-
PATH="$default_path" ; export PATH
|
397
|
-
;;
|
398
|
-
|
399
|
-
jruby)
|
400
|
-
rvm_version="${rvm_version:-1.3.1}"
|
401
|
-
if [ "$rvm_version" = "1.2.0" -o "$rvm_version" = "1.3.1" ] ; then
|
402
|
-
MY_RUBY_HOME="$rvm_install_path/jruby-$rvm_version"
|
403
|
-
GEM_HOME="$HOME/.gem/jruby/1.8"
|
404
|
-
alias ruby_ng="jruby --ng"
|
405
|
-
alias ruby_ng_server="jruby --ng-server"
|
406
|
-
else
|
407
|
-
rvm-log-fail "Unknown jRuby version: $rvm_version"
|
408
|
-
fi
|
409
|
-
;;
|
410
|
-
|
411
|
-
ree)
|
412
|
-
rvm_version=${rvm_version:-1.8.6}
|
413
|
-
if [ "$rvm_version" = "1.8.6" ] ; then
|
414
|
-
rvm_patchlevel="${3:-20090610}"
|
415
|
-
MY_RUBY_HOME="$rvm_install_path/ruby-enterprise-$rvm_version-$rvm_patchlevel"
|
416
|
-
GEM_HOME="$HOME/.gem/ruby-enterprise/1.8"
|
417
|
-
else
|
418
|
-
rvm-log-fail "Unknown Ruby Enterprise Edition version: $rvm_version"
|
419
|
-
fi
|
420
|
-
;;
|
421
|
-
|
422
|
-
ruby)
|
423
|
-
if [ "$rvm_version" = "1.8.7" ] ; then
|
424
|
-
level="${rvm_patchlevel:-174}"
|
425
|
-
MY_RUBY_HOME="$rvm_install_path/ruby-1.8.7-p$level"
|
426
|
-
GEM_HOME="$HOME/.gem/ruby/1.8.7"
|
427
|
-
|
428
|
-
elif [ "$rvm_version" = "1.8.6" -o "$rvm_version" = "1.8" ] ; then
|
429
|
-
level="${rvm_patchlevel:-369}"
|
430
|
-
MY_RUBY_HOME="$rvm_install_path/ruby-1.8.6-p$level"
|
431
|
-
GEM_HOME="$HOME/.gem/ruby/1.8.6"
|
432
|
-
|
433
|
-
elif [ "$rvm_version" = "1.9.2" ] ; then
|
434
|
-
level="${rvm_patchlevel:-review1}"
|
435
|
-
MY_RUBY_HOME="$rvm_install_path/ruby-1.9.2-p$level"
|
436
|
-
GEM_HOME="$HOME/.gem/ruby/1.9.2"
|
437
|
-
|
438
|
-
elif [ "$rvm_version" = "1.9.1" -o "$rvm_version" = "1.9" ] ; then
|
439
|
-
level="${rvm_patchlevel:-243}"
|
440
|
-
MY_RUBY_HOME="$rvm_install_path/ruby-1.9.1-p$level"
|
441
|
-
GEM_HOME="$HOME/.gem/ruby/1.9.1"
|
442
|
-
|
443
|
-
else
|
444
|
-
rvm-log-fail "Unknown ruby version: $rvm_version"
|
445
|
-
fi
|
446
|
-
;;
|
447
|
-
|
448
|
-
*)
|
449
|
-
rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
|
450
|
-
|
451
|
-
esac
|
452
|
-
|
453
|
-
# Now actually use it.
|
454
|
-
if [ ! "$rvm_implementation" = "default" ] ; then
|
455
|
-
# Install if not installed
|
456
|
-
if [ ! -d $MY_RUBY_HOME ] ; then
|
457
|
-
rvm-log-warn "$rvm_implementation $rvm_version is not installed."
|
458
|
-
rvm-install-ruby $rvm_implementation $rvm_version $level
|
459
|
-
fi
|
460
|
-
|
461
|
-
# Set as 'current'
|
462
|
-
RUBY_VERSION="$($MY_RUBY_HOME/bin/ruby -v | sed 's/^\(.*\) (.*$/\1/')"
|
463
|
-
export GEM_HOME MY_RUBY_HOME RUBY_VERSION
|
464
|
-
|
465
|
-
echo "PATH=$MY_RUBY_HOME/bin:$GEM_HOME/bin:$default_path ; export PATH" > $rvm_install_path/current
|
466
|
-
for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do
|
467
|
-
eval "export $variable"
|
468
|
-
eval value=\$${variable}
|
469
|
-
echo "${variable}='$value' ; export ${variable}" >> $rvm_install_path/current
|
470
|
-
done
|
471
|
-
fi
|
472
|
-
|
473
|
-
rvm-log-info "Switching to $rvm_implementation $rvm_version $rvm_patchlevel ...\n"
|
474
|
-
if [ ! -z "$BASH_VERSION" ] ; then
|
475
|
-
exec bash -l
|
476
|
-
elif [ ! -z "$ZSH_VERSION" ] ; then
|
477
|
-
exec zsh -l
|
478
|
-
else
|
479
|
-
rvm-log-fail "Your shell is not supported bash and zsh are currently supported."
|
480
|
-
fi
|
481
|
-
|
482
|
-
}
|
483
|
-
|
484
|
-
function rvm-symlinks {
|
485
|
-
|
486
|
-
mkdir -p ${rvm_install_path}/bin
|
487
|
-
for release in `ls $rvm_install_path | grep 'ruby-'` ; do
|
488
|
-
for binary in ruby irb gem rdoc ri erb ; do
|
489
|
-
if [ -x $rvm_install_path/$release/bin/$binary ] ; then
|
490
|
-
ln -fs $rvm_install_path/$release/bin/$binary $rvm_install_path/bin/$binary-${release#ruby-}
|
491
|
-
fi
|
492
|
-
done
|
493
|
-
done
|
494
|
-
|
495
|
-
}
|
496
|
-
|
497
|
-
function rvm-list {
|
498
|
-
|
499
|
-
echo -e "\nruby:\n$(ls -l $rvm_install_path/ | awk '/ ruby-[1-2].*/ { print " - " $NF }')\n"
|
500
|
-
echo -e "jruby:\n$(ls -l $rvm_install_path/ | awk '/jruby-.*/ { print " - " $NF }')\n"
|
501
|
-
echo -e "ree:\n$(ls $rvm_install_path/ | awk '/ruby-enterprise-.*/ { print " - " $NF }')\n"
|
502
|
-
echo -e "system:\n - ($($default_system_ruby -v))\n"
|
503
|
-
|
504
|
-
}
|
505
|
-
|
506
|
-
function rvm-reset {
|
507
|
-
|
508
|
-
PATH="$default_path" ; export PATH
|
509
|
-
for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do
|
510
|
-
unset $variable
|
511
|
-
done
|
512
|
-
rm -f $rvm_install_path/default* $rvm_install_path/current
|
513
|
-
if [ ! -z "$BASH_VERSION" ] ; then
|
514
|
-
exec bash -l
|
515
|
-
elif [ ! -z "$ZSH_VERSION" ] ; then
|
516
|
-
exec zsh -l
|
517
|
-
else
|
518
|
-
rvm-log-fail "Your shell is not supported bash and zsh are currently supported."
|
519
|
-
fi
|
520
|
-
|
521
|
-
}
|
522
|
-
|
523
|
-
function rvm-gem-dir {
|
524
|
-
|
525
|
-
rvm_implementation=${1:-$rvm_implementation}
|
526
|
-
if [ -z "$rvm_implementation" ] ; then rvm_implementation="current" ; fi
|
527
|
-
|
528
|
-
case "$rvm_implementation" in
|
529
|
-
jruby) GEM_HOME="$HOME/.gem/jruby/1.8" ;;
|
530
|
-
ree) GEM_HOME="$HOME/.gem/ruby-enterprise/1.8" ;;
|
531
|
-
ruby)
|
532
|
-
if [ "${2:-$rvm_version}" = "1.8" -o "${2:-$rvm_version}" = "1.8.6" ] ; then
|
533
|
-
GEM_HOME="$HOME/.gem/ruby/1.8"
|
534
|
-
|
535
|
-
elif [ "${2:-$rvm_version}" = "1.9.2" ] ; then
|
536
|
-
GEM_HOME="$HOME/.gem/ruby/1.9.2"
|
537
|
-
|
538
|
-
elif [ "${2:-$rvm_version}" = "1.9" -o "${2:-$rvm_version}" = "1.9.1" ] ; then
|
539
|
-
GEM_HOME="$HOME/.gem/ruby/1.9.1"
|
540
|
-
|
541
|
-
else
|
542
|
-
rvm-log-fail "Unknown Version: ${2:-$rvm_version}"
|
543
|
-
fi
|
544
|
-
;;
|
545
|
-
current)
|
546
|
-
GEM_HOME=$(ruby -r rubygems -e "puts Gem::default_path.compact.first")
|
547
|
-
;;
|
548
|
-
system)
|
549
|
-
GEM_HOME=$default_system_gem_path
|
550
|
-
;;
|
551
|
-
user)
|
552
|
-
GEM_HOME=$default_user_gem_path
|
553
|
-
;;
|
554
|
-
*)
|
555
|
-
rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
|
556
|
-
esac
|
557
|
-
|
558
|
-
if [ -d $GEM_HOME ] ; then
|
559
|
-
echo $GEM_HOME && cd $GEM_HOME
|
560
|
-
else
|
561
|
-
rvm-log-fail "$rvm_implementation $rvm_version GEM directory does not exist."
|
562
|
-
fi
|
563
|
-
|
564
|
-
}
|
565
|
-
|
566
|
-
function rvm-src-dir {
|
567
|
-
case "${1:-$rvm_implementation}" in
|
568
|
-
|
569
|
-
jruby)
|
570
|
-
rvm_version=${rvm_version:-1.3.1}
|
571
|
-
if [ "${2:-$rvm_version}" = "1.2.0" -o "${2:-$rvm_version}" = "1.3.1" ] ; then
|
572
|
-
src_dir="$rvm_source_path/$rvm_implementation-$rvm_version"
|
573
|
-
else
|
574
|
-
rvm-log-fail "Unknown jRuby version: $rvm_version"
|
575
|
-
fi
|
576
|
-
;;
|
577
|
-
|
578
|
-
ree)
|
579
|
-
rvm_version=${rvm_version:-1.8.6}
|
580
|
-
if [ "${2:-$rvm_version}" = "1.8.6" -o "${2:-$rvm_version}" = "1.8" ] ; then
|
581
|
-
src_dir="$rvm_source_path/ruby-enterprise-${2:-$rvm_version}-"${3:-20090610}""
|
582
|
-
else
|
583
|
-
rvm-log-fail "Unknown Ruby Enterprise Edition version: ${2:-$rvm_version}"
|
584
|
-
fi
|
585
|
-
;;
|
586
|
-
|
587
|
-
ruby)
|
588
|
-
if [ "${2:-$rvm_version}" = "1.8.7" ] ; then
|
589
|
-
src_dir="$rvm_source_path/ruby-1.8.7-p${rvm_patchlevel:-174}"
|
590
|
-
|
591
|
-
elif [ "${2:-$rvm_version}" = "1.8" -o "${2:-$rvm_version}" = "1.8.6" ] ; then
|
592
|
-
src_dir="$rvm_source_path/ruby-1.8.6-p${rvm_patchlevel:-369}"
|
593
|
-
|
594
|
-
elif [ "${2:-$rvm_version}" = "1.9.2" ] ; then
|
595
|
-
src_dir="$rvm_source_path/ruby-1.9.2-p${rvm_patchlevel:-review1}"
|
596
|
-
|
597
|
-
elif [ "${2:-$rvm_version}" = "1.9" -o "${2:-$rvm_version}" = "1.9.1" ] ; then
|
598
|
-
src_dir="$rvm_source_path/ruby-1.9.1-p${rvm_patchlevel:-243}"
|
599
|
-
|
600
|
-
else
|
601
|
-
rvm-log-fail "unknown Ruby version: ${2:-$rvm_version}"
|
602
|
-
fi
|
603
|
-
;;
|
604
|
-
|
605
|
-
default)
|
606
|
-
rvm-log-warn "Invalid request, rvm cannot change to the default source directory."
|
607
|
-
;;
|
608
|
-
|
609
|
-
*)
|
610
|
-
rvm-log-fail "Ruby implementation '$rvm_implementation' is not known."
|
611
|
-
return 1
|
612
|
-
esac
|
613
|
-
|
614
|
-
if [ -d $src_dir ] ; then
|
615
|
-
cd $src_dir
|
616
|
-
else
|
617
|
-
rvm-log-fail "$rvm_implementation $rvm_version source directory does not exist."
|
618
|
-
fi
|
619
|
-
|
620
|
-
}
|
621
|
-
|
622
|
-
# clones from source implementation/version to current
|
623
|
-
function rvm-gem-dup {
|
624
|
-
|
625
|
-
if [ "$1" = "default" ] ; then
|
626
|
-
gem_dir="$default_user_gem_path"
|
627
|
-
elif [ "$1" = "system" ] ; then
|
628
|
-
gem_dir="$default_system_gem_path"
|
629
|
-
else
|
630
|
-
gem_dir=${1:-$default_user_gem_path} # TODO: check for and remove trailing /gems
|
631
|
-
fi
|
632
|
-
|
633
|
-
if [ ! -z "$gem_dir" ] ; then
|
634
|
-
for gem_name_version in `ls $gem_dir/gems` ; do
|
635
|
-
gem_name=${gem_name_version%-*}
|
636
|
-
gem_version=${gem_name_version##*-}
|
637
|
-
if [ -d $GEM_HOME/gems/$gem_name_version ] ; then
|
638
|
-
echo "$gem_name_version already installed."
|
639
|
-
else
|
640
|
-
rvm-gi $gem_dir/cache/$gem_name-$gem_version.gem
|
641
|
-
fi
|
642
|
-
done
|
643
|
-
else
|
644
|
-
rvm-log-fail "Unknown $rvm_implementation version: $rvm_version"
|
645
|
-
fi
|
646
|
-
|
647
|
-
}
|
648
|
-
|
649
|
-
function rvm-version { echo "rvm $rvm_meta_version ($rvm_meta_updated) [$rvm_meta_website]" ; }
|
650
|
-
|
651
|
-
function rvm {
|
652
|
-
|
653
|
-
# Cleanup, aisle 3
|
654
|
-
for variable in rvm_action rvm_implementation rvm_patchlevel rvm_version rvm_source_path rvm_install_path rvm_debug rvm_prefix_path rvm_package_name; do
|
655
|
-
eval "unset $variable"
|
656
|
-
done ; unset variable
|
657
|
-
|
658
|
-
# NOW load defaults settings. TODO: root user loads /etc/rvmrc
|
659
|
-
if [ -f ~/.rvmrc ] ; then source ~/.rvmrc ; fi
|
660
|
-
|
661
|
-
while [ $# -gt 0 ] ; do
|
662
|
-
rvm_token="$1" ; shift
|
663
|
-
case "$rvm_token" in
|
664
|
-
install|uninstall|use|path|info|setup|version|srcdir|list|symlinks|reset|debug|reload)
|
665
|
-
rvm_action=$rvm_token
|
666
|
-
;;
|
667
|
-
|
668
|
-
ruby|jruby|ree|default|all)
|
669
|
-
rvm_implementation="$rvm_token"
|
670
|
-
rvm_action="${rvm_action:-use}"
|
671
|
-
;;
|
672
|
-
|
673
|
-
gemdir)
|
674
|
-
rvm_action=$rvm_token
|
675
|
-
if [ "$1" = "system" ] ; then
|
676
|
-
rvm_implementation="system" ; shift
|
677
|
-
fi
|
678
|
-
if [ "$1" = "user" ] ; then
|
679
|
-
rvm_implementation="user" ; shift
|
680
|
-
fi
|
681
|
-
|
682
|
-
rvm_implementation="${rvm_implementation:-current}"
|
683
|
-
;;
|
684
|
-
|
685
|
-
gemdup)
|
686
|
-
rvm_action=$rvm_token
|
687
|
-
if [ -z "$1" ] ; then
|
688
|
-
rvm_implementation="default"
|
689
|
-
elif [ "$1" = "system" ] ; then
|
690
|
-
rvm_implementation=$1 ; shift
|
691
|
-
elif [ "$1" = "default" ] ; then
|
692
|
-
rvm_implementation=$1 ; shift
|
693
|
-
else
|
694
|
-
rvm_implementation=$1 ; shift
|
695
|
-
rvm_version=$2 ; shift
|
696
|
-
fi
|
697
|
-
;;
|
698
|
-
|
699
|
-
1.8|1.8.6|1.8.7|1.9|1.9.1|1.9.2|1.2.0|1.3.1)
|
700
|
-
rvm_version="$rvm_token"
|
701
|
-
rvm_action="${rvm_action:-use}"
|
702
|
-
;;
|
703
|
-
|
704
|
-
-v|--version)
|
705
|
-
if [ -z "$1" ] ; then
|
706
|
-
rvm_action="version"
|
707
|
-
else
|
708
|
-
rvm_version="$1"
|
709
|
-
fi
|
710
|
-
shift
|
711
|
-
;;
|
712
|
-
|
713
|
-
-l|--level) rvm_patchlevel="$1" ; shift ;;
|
714
|
-
-p|--prefix) rvm_prefix_path="$1" ; shift ;;
|
715
|
-
-b|--bin) rvm_bin_path="$1" ; shift ;; # Undocumented / untested "feature"
|
716
|
-
-s|--source) rvm_source_path="$1" ; shift ;; # Undocumented / untested "feature"
|
717
|
-
-a|--archive) rvm_archives_path="$1" ; shift ;;
|
718
|
-
-c|--configure) configure="$1" ; shift ;;
|
719
|
-
-n|--nice) niceness="$1" ; shift ;;
|
720
|
-
-d|--debug) rvm_debug=1 ;;
|
721
|
-
*) rvm-usage ; return 1
|
722
|
-
esac
|
723
|
-
done
|
724
|
-
|
725
|
-
if [ "$rvm_debug" = "1" ] ; then set -x ; fi
|
726
|
-
|
727
|
-
rvm_curl=`which curl`
|
728
|
-
if [ $? -ne 0 ] ; then
|
729
|
-
rvm-log-fail "rvm expects that curl is available, which curl shows no curl :("
|
730
|
-
else
|
731
|
-
rvm_curl="$rvm_curl -O -L -s"
|
732
|
-
fi
|
733
|
-
|
734
|
-
if [ -z "$rvm_implementation" -a -z "$rvm_version" ] ; then
|
735
|
-
rvm_implementation="default"
|
736
|
-
else
|
737
|
-
rvm_implementation=${rvm_implementation:-ruby}
|
738
|
-
fi
|
739
|
-
|
740
|
-
niceness=${niceness:-0}
|
741
|
-
|
742
|
-
# TODO: Sanitize user input, ensure that there is a / a the end...
|
743
|
-
if [ "`whoami`" = "root" ] ; then
|
744
|
-
rvm-log-fail "root user support is not yet implemented."
|
745
|
-
#rvm_prefix_path=${rvm_prefix_path:-/usr/local/}
|
746
|
-
else
|
747
|
-
rvm_prefix_path=${rvm_prefix_path:-"$HOME/."}
|
748
|
-
fi
|
749
|
-
if [ "${rvm_prefix_path#${rvm_prefix_path%?}}" = '.' -o "${rvm_prefix_path#${rvm_prefix_path%?}}" = '/' ] ; then
|
750
|
-
rvm_install_path="${rvm_prefix_path}rvm"
|
751
|
-
else
|
752
|
-
rvm_install_path="${rvm_prefix_path}/rvm"
|
753
|
-
fi
|
754
|
-
rvm_archives_path="${rvm_archives_path:-"${rvm_install_path}/archives"}"
|
755
|
-
rvm_source_path="${rvm_source_path:-"${rvm_install_path}/src"}"
|
756
|
-
rvm_log_path=${rvm_log_path:-"${rvm_install_path}/log"}
|
757
|
-
rvm_bin_path=${rvm_bin_path:-"${rvm_install_path}/bin"}
|
758
|
-
|
759
|
-
PATH=$rvm_bin_path:$PATH ; export PATH
|
760
|
-
|
761
|
-
mkdir -p $rvm_source_path $rvm_install_path/bin $rvm_archives_path
|
762
|
-
|
763
|
-
if [ ! -f $rvm_install_path/default ] ; then
|
764
|
-
for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME PATH ; do
|
765
|
-
eval "export $variable"
|
766
|
-
eval value=\$${variable}
|
767
|
-
echo "${variable}='$value' ; export ${variable}" >> $rvm_install_path/default
|
768
|
-
done
|
769
|
-
fi
|
770
|
-
|
771
|
-
if [ -s $rvm_install_path/default_path ] ; then
|
772
|
-
default_path=`cat $rvm_install_path/default_path`
|
773
|
-
else
|
774
|
-
echo $PATH > $rvm_install_path/default_path
|
775
|
-
default_path=$PATH
|
776
|
-
fi
|
777
|
-
|
778
|
-
if [ -s $rvm_install_path/default_user_gem_path ] ; then
|
779
|
-
default_user_gem_path=`cat $rvm_install_path/default_user_gem_path`
|
780
|
-
else
|
781
|
-
ruby -r rubygems -e "puts Gem::default_path.compact.first" > $rvm_install_path/default_user_gem_path
|
782
|
-
fi
|
783
|
-
|
784
|
-
if [ -s $rvm_install_path/default_system_gem_path ] ; then
|
785
|
-
default_system_gem_path=`cat $rvm_install_path/default_system_gem_path`
|
786
|
-
else
|
787
|
-
ruby -r rubygems -e "puts Gem::default_path.compact[1] || Gem::default_path.compact.first" > $rvm_install_path/default_system_gem_path
|
788
|
-
fi
|
789
|
-
|
790
|
-
if [ -s $rvm_install_path/default_system_ruby ] ; then
|
791
|
-
default_system_ruby=`cat $rvm_install_path/default_system_ruby`
|
792
|
-
else
|
793
|
-
default_system_ruby=`which ruby`
|
794
|
-
echo $default_system_ruby > $rvm_install_path/default_system_ruby
|
795
|
-
fi
|
796
|
-
|
797
|
-
case "$rvm_action" in
|
798
|
-
install)
|
799
|
-
if [ "$rvm_implementation" = "all" ] ; then
|
800
|
-
for rvm_implementation in ruby jruby ree ; do
|
801
|
-
if [ "$rvm_implementation" = "ruby" ] ; then
|
802
|
-
for rvm_version in 1.8.6 1.8.7 1.9.1 1.9.2 ; do
|
803
|
-
rvm-install-ruby $rvm_implementation $rvm_version
|
804
|
-
done
|
805
|
-
unset rvm_version
|
806
|
-
else
|
807
|
-
rvm-install-ruby $rvm_implementation $rvm_version
|
808
|
-
fi
|
809
|
-
done
|
810
|
-
else
|
811
|
-
rvm-install-ruby $rvm_implementation $rvm_version $rvm_patchlevel
|
812
|
-
fi
|
813
|
-
;;
|
814
|
-
uninstall) rvm-uninstall $rvm_implementation $rvm_version $rvm_patchlevel ;;
|
815
|
-
use) rvm-use $rvm_implementation $rvm_version $rvm_patchlevel ;;
|
816
|
-
list) rvm-list ;;
|
817
|
-
gemdir) rvm-gem-dir $rvm_implementation $rvm_version $rvm_patchlevel ;;
|
818
|
-
srcdir) rvm-src-dir $rvm_implementation $rvm_version $rvm_patchlevel ;;
|
819
|
-
gemdup) rvm-gem-dup $rvm_implementation $rvm_version $rvm_patchlevel ;;
|
820
|
-
info) rvm-info $rvm_implementation $rvm_version $rvm_patchlevel ;;
|
821
|
-
symlinks) rvm-symlinks ;;
|
822
|
-
version) rvm-version ;;
|
823
|
-
reset) rvm-reset ;;
|
824
|
-
reload) source ~/.rvm/bin/rvm ;; # TODO: how can we use bin_path here, default file?
|
825
|
-
debug)
|
826
|
-
rvm-version
|
827
|
-
rvm-info
|
828
|
-
rvm-log-info "PATH:$(echo $PATH | awk -F":" '{print $1":"$2":"$3":"$4":"$5}')"
|
829
|
-
for file in .bash_profile .zshrc ; do
|
830
|
-
if [ -s $file ] ; then
|
831
|
-
rvm-log-info "~/$file: \n$(cat ~/$file| tail -n 5)\n"
|
832
|
-
fi
|
833
|
-
done
|
834
|
-
rvm-log-info "$rvm_install_path/current: \n$(cat $rvm_install_path/current)\n"
|
835
|
-
return 0
|
836
|
-
;;
|
837
|
-
*)
|
838
|
-
if [ ! -z "$rvm_action" ] ; then
|
839
|
-
rvm-log-fail "unknown action '$rvm_action'"
|
840
|
-
else
|
841
|
-
rvm-usage
|
842
|
-
fi
|
843
|
-
return 1
|
844
|
-
esac
|
845
|
-
|
846
|
-
if [ "$rvm_debug" = "1" ] ; then set +x ; unset rvm_debug ; fi
|
847
|
-
|
848
|
-
}
|
849
|
-
|
850
|
-
# TODO: Make this optional:
|
851
|
-
if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi # magic :)
|
852
|
-
|