wayneeseguin-rvm 0.0.24 → 0.0.25
Sign up to get free protection for your applications and to get access to all the features.
- 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: wayneeseguin-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 -07: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: false
|
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
|
-
|