rvm 0.0.34 → 0.0.35

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.
@@ -0,0 +1,230 @@
1
+ #!/bin/bash
2
+
3
+ function __rvm_parse-args {
4
+ while [ $# -gt 0 ] ; do
5
+ rvm_token="$1" ; shift
6
+ case "$rvm_token" in
7
+ install|uninstall|path|info|setup|version|srcdir|list|symlinks|reset|debug|reload|usage|help|implode|update)
8
+ rvm_action=$rvm_token
9
+ ;;
10
+ use)
11
+ rvm_action=$rvm_token
12
+ if [ "$1" = "default" ] ; then
13
+ rvm_ruby_interpreter="system" ; shift
14
+ elif [ -z "$1" ] ; then
15
+ rvm_ruby_interpreter="system"
16
+ fi
17
+ ;;
18
+
19
+ ruby|jruby|ree|macruby|rbx|rubinius|default|all)
20
+ rvm_ruby_interpreter="$rvm_token"
21
+ rvm_action="${rvm_action:-use}"
22
+ ;;
23
+
24
+ gemdir)
25
+ rvm_action=$rvm_token
26
+
27
+ if [ "$1" = "system" ] ; then
28
+ rvm_ruby_interpreter="system" ; shift
29
+ fi
30
+
31
+ if [ "$1" = "user" ] ; then
32
+ rvm_ruby_interpreter="user" ; shift
33
+ fi
34
+
35
+ rvm_ruby_interpreter="${rvm_ruby_interpreter:-current}"
36
+ ;;
37
+
38
+ gemdup)
39
+ rvm_action=$rvm_token
40
+ if [ -z "$1" ] ; then
41
+ rvm_ruby_interpreter="default"
42
+ elif [ "$1" = "system" ] ; then
43
+ rvm_ruby_interpreter=$1 ; shift
44
+ elif [ "$1" = "default" ] ; then
45
+ rvm_ruby_interpreter=$1 ; shift
46
+ else
47
+ rvm_ruby_interpreter=$1 ; shift
48
+ rvm_ruby_version=$2 ; shift
49
+ fi
50
+ ;;
51
+
52
+ do|rubydo)
53
+ rvm_action=$rvm_token
54
+ temp=$(echo $1 | awk '{print substr($1, 0, 1)}')
55
+ if [ "$temp" != "-" ] ; then
56
+ if [ ! -z "$(echo $temp | grep '[0-9]')" ] ; then
57
+ rvm_ruby_version=$(echo "$1" | tr ',' ' ') ; shift
58
+ else
59
+ rvm_ruby_version=$1 ; shift
60
+ fi
61
+ else
62
+ unset rvm_ruby_version
63
+ fi
64
+ unset rvm_ruby_interpreter
65
+ ;;
66
+
67
+ 1.8|1.8.0|1.8.1|1.8.2|1.8.3|1.8.4|1.8.5|1.8.6|1.8.7|1.9|1.9.1|1.9.2)
68
+ rvm_ruby_interpreter="ruby"
69
+ rvm_ruby_version="$rvm_token"
70
+ rvm_action="${rvm_action:-use}"
71
+ ;;
72
+ 1.2.0|1.3.1)
73
+ rvm_ruby_interpreter="jruby"
74
+ rvm_ruby_version="$rvm_token"
75
+ rvm_action="${rvm_action:-use}"
76
+ ;;
77
+
78
+ -v|--version)
79
+ if [ -z "$1" ] ; then
80
+ rvm_action="version"
81
+ else
82
+ rvm_ruby_version="$1"
83
+ fi
84
+ shift
85
+ ;;
86
+
87
+ -t|--tag) rvm_ruby_tag="$1";
88
+ rvm_action="${rvm_action:-use}"
89
+ shift ;;
90
+ -r|--rev) rvm_ruby_rev="$1";
91
+ rvm_action="${rvm_action:-use}"
92
+ shift ;;
93
+ -b|--branch) rvm_ruby_rev="$1";
94
+ rvm_action="${rvm_action:-use}"
95
+ shift ;;
96
+
97
+
98
+ -P|--prefix) rvm_prefix_path="$1" ; shift ;;
99
+ -B|--bin) rvm_bin_path="$1" ; shift ;;
100
+ -S|--source) rvm_source_path="$1" ; shift ;;
101
+ -A|--archive) rvm_archives_path="$1" ; shift ;;
102
+ -G|--gems) rvm_gem_path="$1" ; shift ;;
103
+ -C|--configure)
104
+ if [ ! -z "$1" ] ; then
105
+ rvm_ruby_configure="$(echo $1 | tr ',' ' ')"
106
+ shift
107
+ else
108
+ rvm_action="error"
109
+ rvm_error_message="--configure *must* be followed by configure flags."
110
+ break;
111
+ fi
112
+ ;;
113
+ --re-configure) rvm_re_configure=1 ;;
114
+ -M|--make) rvm_ruby_make="$1" ; shift ;;
115
+ -I|--make-install) rvm_ruby_make_install="$1"; shift ;;
116
+ -l|--level) rvm_ruby_patch_level="$1" ; shift ;;
117
+ -n|--nice) rvm_niceness="$1" ; shift ;;
118
+ -f|--file) rvm_ruby_args="$1" ; shift ;;
119
+ -h|--help) rvm_action=help ; shift ;;
120
+ -d|--default) rvm_set_default=1 ;;
121
+ --head) rvm_ruby_rev="head" ;;
122
+ --trace|--debug) rvm_debug=1 ;;
123
+ --force) rvm_force=1 ;;
124
+ --set-prompt) rvm_set_prompt=1 ;;
125
+ --all) rvm_all=1 ; shift ;;
126
+ -m|--gem-set) rvm_gem_set_name="$1" ; shift ;;
127
+ --rm-gem-set) rvm_gem_set_name_rm="$1" ; shift ;;
128
+ --jit) rvm_rubinius_jit="RBX_LLVM=1" ;;
129
+
130
+ default|system)
131
+ rvm_action="use"
132
+ rvm_ruby_interpreter="system"
133
+ ;;
134
+ *)
135
+ rvm_action="error"
136
+ rvm_error_message="Unrecognized command line argument(s): '$rvm_token $*'"
137
+ break;
138
+ esac
139
+ if [ ! -z "$rvm_ruby_args" -o ! -z "$rvm_error_message" ] ; then break; fi
140
+ done
141
+
142
+ if [ ! -z "$rvm_error_message" ] ; then popd 2> /dev/null ; return 1 ; fi
143
+ if [ -z "$rvm_debug" ] ; then set +x ; else set -x ; fi
144
+
145
+ }
146
+
147
+ function rvm {
148
+
149
+ __rvm_cleanup-variables
150
+ __rvm_load-rvmrc
151
+ __rvm_initialize
152
+ __rvm_load-defaults
153
+ __rvm_parse-args $*
154
+
155
+ case "$rvm_action" in
156
+ install) __rvm_install-ruby $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
157
+ uninstall) __rvm_uninstall $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
158
+ use) __rvm_use $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
159
+ list) __rvm_list ;;
160
+ gemdir) __rvm_gem-dir $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
161
+ srcdir) __rvm_src-dir $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
162
+ gemdup) __rvm_gem-dup $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
163
+ symlinks) __rvm_symlinks ;;
164
+ version) __rvm_version ;;
165
+ rubydo)
166
+ if [ ! -z "$rvm_ruby_version" ] ; then
167
+ rvm_ruby_versions=$(echo $rvm_ruby_version | tr ',' ' ')
168
+ for rvm_ruby_version in $rvm_ruby_versions ; do
169
+ temp=$(echo $rvm_ruby_version | awk '{print substr($1, 0, 1)}')
170
+ if [ ! -z "$(echo $temp | grep '[0-9]')" ] ; then
171
+ rvm_ruby_interpreter="ruby"
172
+ else
173
+ rvm_ruby_interpreter="$rvm_ruby_version"
174
+ unset rvm_ruby_version
175
+ fi
176
+ unset temp
177
+ __rvm_select $rvm_ruby_interpreter $rvm_ruby_version
178
+
179
+ rvm_command="$rvm_ruby_binary $rvm_ruby_args"
180
+ echo "$(basename $rvm_ruby_binary):"
181
+ eval $rvm_command
182
+ unset rvm_ruby_interpreter rvm_ruby_patch_level rvm_ruby_version rvm_ruby_package_name rvm_ruby_home rvm_ruby_irbrc rvm_ruby_binary
183
+ done
184
+ else # all
185
+ rvm_ruby_versions=`/bin/ls $rvm_install_path/bin/ruby-*`
186
+ for rvm_ruby_binary in $rvm_ruby_versions ; do
187
+ if [ -x $rvm_ruby_binary ] ; then
188
+ rvm_command="$rvm_ruby_binary $rvm_ruby_args"
189
+ echo "$(basename $rvm_ruby_binary):"
190
+ eval $rvm_command
191
+ fi
192
+ done
193
+ fi
194
+ ;;
195
+ reset) __rvm_reset ;;
196
+ # TODO: how can we use bin_path here for reload, default file?
197
+ reload) source ~/.rvm/scripts/rvm ;;
198
+ implode) __rvm_implode ;;
199
+ update)
200
+ if [ "$rvm_ruby_rev" = "head" ] ; then
201
+ if [ -d $rvm_source_path/rvm/.git ] ; then
202
+ cd $rvm_source_path/rvm/ && git pull origin master
203
+ else
204
+ cd $rvm_source_path && git clone git://github.com/wayneeseguin/rvm.git && cd rvm/
205
+ fi
206
+ ./scripts/rvm-update
207
+ else
208
+ # TODO: rvm_install_path:
209
+ gem install rvm --no-rdoc --no-ri -q && rvm-update && source ~/.rvm/scripts/rvm
210
+ fi
211
+ ;;
212
+ error) __rvm_log "fail" "$rvm_error_message ( see: rvm usage )" ; popd 2> /dev/null ; return 1; ;;
213
+ info|debug)
214
+ __rvm_version
215
+ __rvm_info
216
+ if [ "$rvm_action" = "debug" ] ; then __rvm_debug ; fi
217
+ return 0
218
+ ;;
219
+ usage|help) __rvm_usage ;;
220
+ *)
221
+ if [ ! -z "$rvm_action" ] ; then
222
+ __rvm_log "fail" "unknown action '$rvm_action'"
223
+ else
224
+ __rvm_usage
225
+ fi
226
+ return 1
227
+ esac
228
+
229
+ if [ "$rvm_debug" = "1" ] ; then set +x ; unset rvm_debug ; fi
230
+ }
@@ -23,18 +23,13 @@ done
23
23
 
24
24
  for file in ~/.bash_profile ~/.bashrc ~/.zshrc ; do
25
25
  if [ -s $file ] ; then
26
- echo -e "\n\033[0;33m<w>\033[0m Ensuring that rvm script location in $file is scripts/rvm not bin/rvm"
26
+ echo -e "\n\033[0;32m<i>\033[0m Ensuring that rvm script location in $file is scripts/rvm not bin/rvm"
27
27
  actual_file=$(file ~/.zshrc | awk '{print $5}')
28
28
  sed -i.orig 's/rvm\/bin\/rvm/rvm\/scripts\/rvm/g' $actual_file
29
29
  fi
30
30
  done
31
31
 
32
- if [ -f ~/.rvm/bin/rvm ] ; then
33
- echo -e "\n\033[0;33m<w>\033[0m Removing old rvm file from ~/.rvm/bin/rvm"
34
- rm -f ~/.rvm/bin/rvm
35
- fi
36
-
37
- for dir in scripts examples ; do
32
+ for dir in config scripts examples ; do
38
33
  mkdir -p $rvm_dir/$dir
39
34
  for file in `/bin/ls $source_dir/$dir/`; do
40
35
  cp $source_dir/$dir/$file $rvm_dir/$dir/$file
@@ -0,0 +1,346 @@
1
+ #!/bin/bash
2
+
3
+ #
4
+ # Installer
5
+ #
6
+
7
+ function __rvm_install-source {
8
+
9
+ if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
10
+
11
+ __rvm_log "info" "Installing Ruby from source to: $rvm_ruby_home"
12
+ mkdir -p $rvm_ruby_log_path
13
+
14
+ pushd $rvm_source_path > /dev/null
15
+
16
+ if [ ! -z "$rvm_force" ] ; then
17
+ rm -rf $rvm_ruby_home
18
+ rm -rf $rvm_ruby_src_path
19
+ fi
20
+
21
+ if [ -z "$rvm_ruby_tag" -a -z "$rvm_ruby_rev" ] ; then
22
+ if [ ! -d $rvm_ruby_src_path ] ; then
23
+ rvm_url="${rvm_url:-"ftp://ftp.ruby-lang.org/pub/ruby/1.$rvm_major_version/$rvm_ruby_package_name.tar.gz"}"
24
+ __rvm_log "info" "\tDownloading $rvm_ruby_package_name, this may take a while depending on your connection..."
25
+ __rvm_fetch $rvm_url
26
+ __rvm_log "info" "\tExtracting $rvm_ruby_package_name ..."
27
+ mkdir -p $rvm_ruby_src_path # Is this line necessary considering -C below? v
28
+ __rvm_run "extract" tar xzf $rvm_archives_path/$rvm_ruby_package_name.tar.gz -C $rvm_source_path
29
+ fi
30
+ else
31
+ __rvm_log "info" "\tRetrieving Ruby from $rvm_url"
32
+ if [ ! -z "`echo $rvm_url | grep '^git'`" ] ; then
33
+ if [ -d "$rvm_ruby_src_path/.git" ] ; then
34
+ cd $rvm_ruby_src_path
35
+ if [ -z "$rvm_ruby_rev" ] ; then
36
+ git pull origin master
37
+ else
38
+ git checkout ${rvm_ruby_rev:-HEAD}
39
+ fi
40
+ else
41
+ git clone --depth 1 $rvm_ruby_repo_url $rvm_ruby_src_path
42
+ fi
43
+ else
44
+ if [ -z "$rvm_ruby_rev" ] ; then
45
+ # TODO: Check if tag v is valid
46
+ rvm_url=$rvm_ruby_repo_url/tags/$rvm_ruby_tag
47
+ rvm_rev=""
48
+ else
49
+ if [ "$rvm_ruby_rev" = "head" -o "$rvm_ruby_rev" = "trunk" ] ; then
50
+ rvm_url=$rvm_ruby_repo_url/branches/ruby_1_${rvm_major_version}_${rvm_minor_version}
51
+ rvm_rev=""
52
+ else
53
+ rvm_url=$rvm_ruby_repo_url/branches/ruby_1_${rvm_major_version}_${rvm_minor_version}
54
+ rvm_rev="-r $rvm_ruby_rev"
55
+ fi
56
+ fi
57
+
58
+ if [ -d "$rvm_ruby_src_path/.svn" ] ; then
59
+ cd $rvm_ruby_src_path
60
+ svn checkout -q $rvm_rev
61
+ else
62
+ svn checkout -q $rvm_rev --force $rvm_url $rvm_ruby_src_path
63
+ fi
64
+ fi
65
+ fi
66
+
67
+ cd $rvm_ruby_src_path
68
+ if [ $? -gt 0 ] ; then __rvm_log "error" "There was an error, please check $rvm_ruby_log_path/*.error.log" ; popd 2> /dev/null ; return 1 ; fi
69
+
70
+ if [ ! -s "$rvm_ruby_src_path/configure" -a "$rvm_ruby_interpreter" = "ruby" ] ; then
71
+ rvm_autoconf=`which autoconf`
72
+ if [ $? -ne 0 ] ; then __rvm_log "fail" "rvm expects autoconf" ; fi
73
+ __rvm_run "autoconf" $rvm_autoconf
74
+ fi
75
+
76
+ if [ $? -gt 0 ] ; then __rvm_log "error" "There was an error, please check $rvm_ruby_log_path/*.error.log" ; popd 2> /dev/null ; return 1 ; fi
77
+
78
+ if [ -s ./Makefile -a -z "$rvm_re_configure" ] ; then
79
+ __rvm_log "warn" "\tSkipping configure step, Makefile exists so configure must have already been run."
80
+ elif [ -s ./configure ] ; then
81
+ __rvm_log "info" "\tConfiguring $rvm_ruby_package_name using $rvm_ruby_configure, this may take a while depending on your cpu(s)..."
82
+ __rvm_run "configure" ./configure --prefix=$rvm_ruby_home $rvm_ruby_configure
83
+ else
84
+ __rvm_log "warn" "\tSkipping configure step, 'configure' script does not exist, did autoconf not run successfully?"
85
+ fi
86
+
87
+ __rvm_log "info" "\tCompiling $rvm_ruby_package_name, this may take a while, depending on your cpu(s)..."
88
+ if [ -z "$rvm_ruby_make" ] ; then
89
+ __rvm_run "make" make
90
+ else
91
+ __rvm_run "make" $rvm_ruby_make
92
+ fi
93
+
94
+ if [ -z "$rvm_ruby_make" ] ; then
95
+ __rvm_log "info" "\tInstalling $rvm_ruby_package_name"
96
+ __rvm_run "install" make install
97
+ else
98
+ __rvm_run "install" $rvm_ruby_make_install
99
+ fi
100
+ __rvm_run "chmod.bin" chmod +x $rvm_ruby_home/bin/*
101
+
102
+ __rvm_bin_scripts
103
+ __rvm_log "info" "Installation of $rvm_ruby_package_name is complete."
104
+
105
+ __rvm_log "info" "\tInstalling rubygems dedicated to $rvm_ruby_package_name..."
106
+ rvm_gem_package_name="rubygems-1.3.5"
107
+ rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
108
+ if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
109
+ cd $rvm_source_path/$rvm_gem_package_name
110
+ else
111
+ __rvm_fetch $rvm_gem_url
112
+ mkdir -p $rvm_source_path/$rvm_gem_package_name
113
+ __rvm_run "rubygems.extract" tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
114
+ fi
115
+ # Well this is fun... fix nil error on require_paths:
116
+ 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
117
+
118
+ __rvm_run "rubygems.install" $rvm_ruby_binary $rvm_source_path/$rvm_gem_package_name/setup.rb
119
+ popd 2> /dev/null
120
+
121
+ for binary in gem irb erb ri rdoc testrb rake ; do
122
+ if [ -x $rvm_ruby_src_path/bin/$binary ] ; then
123
+ cp $rvm_ruby_src_path/bin/$binary $rvm_ruby_home/bin/$binary
124
+ string="ENV['GEM_HOME']=ENV['GEM_HOME'] || '$rvm_gem_home'\nENV['PATH']='$rvm_ruby_home/bin:$rvm_gem_home/bin:' + ENV['PATH']"
125
+ awk "NR==2 {print \"$string\"} {print}" $rvm_ruby_home/bin/$binary > $rvm_ruby_home/bin/$binary.new
126
+ mv $rvm_ruby_home/bin/$binary.new $rvm_ruby_home/bin/$binary
127
+ chmod +x $rvm_ruby_home/bin/$binary
128
+ else
129
+ __rvm_log "warn" "$rvm_ruby_home/bin/$binary is missing"
130
+ fi
131
+ done
132
+
133
+ for rvm_gem_name in rake ; do
134
+ __rvm_log "info" "Installing $rvm_gem_name"
135
+ __rvm_run "gems" $rvm_ruby_home/bin/gem install $rvm_gem_name --no-rdoc --no-ri -q
136
+ done
137
+
138
+ __rvm_log "info" "Installation of rubygems for $rvm_ruby_package_name is complete."
139
+ if [ -x $rvm_gem_home/bin/$binary ] ; then
140
+ string="ENV['GEM_HOME']=ENV['GEM_HOME'] || '$rvm_gem_home'\nENV['PATH']='$rvm_ruby_home/bin:$rvm_gem_home/bin:' + ENV['PATH']"
141
+ mv $rvm_gem_home/bin/$binary $rvm_gem_home/bin/$binary.orig
142
+ awk "NR==2 {print \"$string\"} {print}" $rvm_gem_home/bin/$binary.orig > $rvm_gem_home/bin/$binary
143
+ chmod +x $rvm_gem_home/bin/$binary
144
+ else
145
+ __rvm_log "warn" "$rvm_gem_home/bin/$binary is missing"
146
+ fi
147
+
148
+ binary=rake
149
+ if [ -x $rvm_ruby_home/bin/$binary ] ; then
150
+ mv $rvm_ruby_home/bin/$binary $rvm_gem_home/bin/$binary.orig
151
+ awk "NR==2 {print \"$string\"} {print}" $rvm_gem_home/bin/$binary.orig > $rvm_gem_home/bin/$binary
152
+ else
153
+ __rvm_log "warn" "$rvm_gem_home/bin/$binary is missing."
154
+ fi
155
+ unset binary
156
+ }
157
+
158
+ function __rvm_install-ruby {
159
+
160
+ if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
161
+ if [ ! -z "$RUBYOPT" ] ; then ruby_options=$RUBYOPT ; unset RUBYOPT ; fi
162
+
163
+ case "$rvm_ruby_interpreter" in
164
+
165
+ macruby)
166
+ if [ "`uname`" = "Darwin" ] ; then
167
+ rvm_ruby_repo_url=$rvm_macruby_repo_url
168
+ rvm_ruby_configure=""
169
+ rvm_ruby_make="rake macruby:build framework_instdir=$rvm_path/macruby-head framework_name=/macruby-head --trace"
170
+ rvm_ruby_make_install="rake framework:install framework_instdir=$rvm_path/macruby-head framework_name=/macruby-head --trace"
171
+ #rvm_ruby_rev="${rvm_ruby_rev:-head}" # Hard coding this for now
172
+
173
+ DESTDIR="$rvm_ruby_home" ; export DESTDIR
174
+ if [ -z "$rvm_ruby_rev" ] ; then
175
+ # TODO: Check if tag v is valid
176
+ #rvm_ruby_repo_url=$rvm_ruby_repo_url/tags/$rvm_ruby_tag
177
+ rvm_ruby_rev="head" # For now, until nightly release are available.
178
+ else
179
+ if [ "$rvm_ruby_rev" = "head" -o "$rvm_ruby_rev" = "trunk" ] ; then
180
+ #rvm_ruby_repo_url=$rvm_ruby_repo_url/trunk
181
+ rvm_ruby_rev="head"
182
+ else
183
+ #rvm_ruby_repo_url=$rvm_ruby_repo_url/trunk
184
+ rvm_ruby_rev="-r $rvm_ruby_rev"
185
+ fi
186
+ fi
187
+ __rvm_fetch $rvm_url
188
+ __rvm_run /usr/sbin/installer -pkg $rvm_ruby_package_name.pkg -target "$rvm_path/$rvm_ruby_package_name/"
189
+ #__rvm_install-source
190
+ unset DESTDIR
191
+ else
192
+ __rvm_log "fail" "MacRuby can only be installed on a Darwin OS."
193
+ fi
194
+ ;;
195
+
196
+ ruby-enterprise|ree)
197
+ rvm_url="http://rubyforge.org/frs/download.php/58677/$rvm_ruby_package_name.tar.gz"
198
+ __rvm_log "info" "Installing Ruby Enterprise Edition from source to: $rvm_ruby_home"
199
+ pushd $rvm_source_path > /dev/null
200
+ if [ -d $rvm_ruby_src_path ] ; then
201
+ cd $rvm_ruby_src_path
202
+ else
203
+ __rvm_log "info" "\tDownloading $rvm_ruby_package_name, this may take a while depending on your connection..."
204
+ __rvm_fetch $rvm_url
205
+ if [ $? -gt 0 ] ; then __rvm_log "error" "There was an error, please check $rvm_ruby_log_path/*.error.log" ; popd 2> /dev/null ; return 1 ; fi
206
+ __rvm_log "info" "\tExtracting $rvm_ruby_package_name..."
207
+ mkdir -p $rvm_ruby_src_path
208
+ __rvm_run "extract" tar xzf $rvm_archives_path/$rvm_ruby_package_name.tar.gz -C $rvm_source_path
209
+ fi
210
+
211
+ __rvm_log "info" "\tInstalling $rvm_ruby_package_name, this may take a while, depending on your cpu(s)..."
212
+ mkdir -p $rvm_ruby_log_path
213
+
214
+ cd $rvm_ruby_src_path
215
+ __rvm_run "install" ./installer -a $rvm_path/ruby-enterprise-$rvm_ruby_version-$rvm_ruby_patch_level --dont-install-useful-gems --no-tcmalloc
216
+ chmod +x $rvm_ruby_home/bin/*
217
+
218
+ ln -fs $rvm_ruby_home/bin/ruby $rvm_path/bin/$rvm_ruby_package_name
219
+
220
+ __rvm_log "info" "\tInstalling rubygems dedicated to $rvm_ruby_package_name..."
221
+ rvm_gem_package_name="rubygems-1.3.5"
222
+ rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
223
+ if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
224
+ cd $rvm_source_path/$rvm_gem_package_name
225
+ else
226
+ __rvm_fetch $rvm_gem_url
227
+ mkdir -p $rvm_source_path/$rvm_gem_package_name
228
+ __rvm_run "extract" tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
229
+ fi
230
+ # Well this is fun... fix nil error on require_paths:
231
+ 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_ruby_log_path/rubygems.install.log 2> $rvm_ruby_log_path/rubygems.install.error.log
232
+
233
+ __rvm_run "rubygems.install" $rvm_ruby_home/bin/ruby $rvm_source_path/$rvm_gem_package_name/setup.rb
234
+ __rvm_log "info" "Installation of $rvm_ruby_package_name complete."
235
+ popd 2> /dev/null
236
+
237
+ for rvm_gem_name in rake ; do
238
+ __rvm_log "info" "Installing $rvm_gem_name"
239
+ __rvm_run "gems" $rvm_ruby_home/bin/gem install $rvm_gem_name --no-rdoc --no-ri -q
240
+ done
241
+ ;;
242
+
243
+ rbx|rubinius)
244
+ __rvm_reset # Requires 1.8 to install due to parsetree. TOOD: Check for 1.8 + parse-tree
245
+ rvm_ruby_repo_url=$rvm_rubinius_repo_url
246
+ rvm_ruby_configure=""
247
+ rvm_ruby_make="rake"
248
+ rvm_ruby_make_install="rake install"
249
+ rvm_ruby_home="$rvm_path/$rvm_ruby_interpreter-$rvm_ruby_version"
250
+ #rvm_ruby_rev="head"
251
+ # TODO: Check if already git repo, then git pull origin master && build
252
+ if [ ! -d $rvm_ruby_home -o ! -d $rvm_ruby_home/.git ] ; then
253
+ rm -rf $rvm_ruby_home
254
+ git clone --depth 1 $rvm_ruby_repo_url $rvm_ruby_home
255
+ fi
256
+ cd $rvm_ruby_home
257
+ __rvm_run "build" $rvm_rubinius_jit rake build
258
+ for binary in ruby irb ; do
259
+ ln -fs $rvm_ruby_home/bin/rbx $rvm_ruby_home/bin/$binary
260
+ done
261
+ ;;
262
+
263
+ jruby)
264
+ rvm_package_file="$rvm_ruby_interpreter-bin-$rvm_ruby_version"
265
+ rvm_url="http://dist.codehaus.org/$rvm_ruby_interpreter/$rvm_ruby_version/$rvm_package_file.zip"
266
+ rvm_jruby_repo_url="${rvm_jruby_repo_url:-"git://kenai.com/jruby~main"}"
267
+
268
+ __rvm_log "info" "Installing jRuby to: $rvm_ruby_home"
269
+ mkdir -p $rvm_ruby_log_path
270
+ pushd $rvm_source_path > /dev/null
271
+
272
+ if [ ! -z "$rvm_ruby_rev" ] ; then
273
+ if [ ! -d $rvm_path/$rvm_ruby_interpreter-$rvm_ruby_version -o ! -d $rvm_path/$rvm_ruby_interpreter-$rvm_ruby_version/.git ] ; then
274
+ git clone --depth 1 $rvm_jruby_repo_url $rvm_ruby_src_path
275
+ cd $rvm_ruby_src_path && ant
276
+ fi
277
+ else
278
+ if [ -d $rvm_ruby_src_path ] ; then
279
+ cd $rvm_ruby_src_path
280
+ else
281
+ __rvm_log "info" "\tDownloading $rvm_package_file, this may take a while depending on your connection..."
282
+ __rvm_fetch $rvm_url
283
+ __rvm_log "info" "\tExtracting $rvm_package_file..."
284
+ __rvm_run "extract" unzip -q $rvm_archives_path/$rvm_package_file.zip -d $rvm_source_path
285
+ cd $rvm_ruby_src_path
286
+ fi
287
+ fi
288
+
289
+ __rvm_log "info" "\tInstalling $rvm_ruby_package_name..."
290
+ mkdir -p $rvm_ruby_home/bin/
291
+ __rvm_run "sync" rsync -ag $rvm_ruby_src_path/ $rvm_ruby_home/
292
+ __rvm_run "nailgun" cd $rvm_ruby_src_path/tool/nailgun && make
293
+ popd 2> /dev/null
294
+ chmod +x $rvm_ruby_home/bin/*
295
+ for binary in jruby jgem jirb ; do
296
+ ln -fs $rvm_ruby_home/bin/$binary $rvm_ruby_home/bin/${binary#j}
297
+ done
298
+
299
+ ln -fs $rvm_ruby_home/bin/ruby $rvm_path/bin/$rvm_ruby_package_name
300
+ for rvm_gem_name in rake jruby-openssl ; do
301
+ __rvm_log "info" "Installing $rvm_gem_name"
302
+ __rvm_run "gems" $rvm_ruby_home/bin/jgem install $rvm_gem_name --no-rdoc --no-ri -q
303
+ done
304
+ ;;
305
+
306
+ ruby)
307
+ if [ -z "rvm_ruby_configure" ] ; then rvm_ruby_configure="--enable-shared=true" ; fi
308
+ __rvm_install-source $*
309
+ ;;
310
+
311
+ default)
312
+ __rvm_log "fail" "please specify a ruby implementation to install."
313
+ ;;
314
+
315
+ *) __rvm_log "fail" "Ruby implementation '$rvm_ruby_interpreter' is not known."
316
+
317
+ esac
318
+
319
+ if [ ! -z "$ruby_options" ] ; then
320
+ RUBYOPT=$ruby_options ; export RUBYOPT
321
+ fi
322
+
323
+ }
324
+
325
+ function __rvm_uninstall {
326
+
327
+ if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
328
+
329
+ if [ ! -z "$rvm_ruby_package_name" ] ; then
330
+ for dir in $rvm_source_path $rvm_path ; do
331
+ if [ -d $dir/$rvm_ruby_package_name ] ; then
332
+ __rvm_log "info" "Removing $dir/$rvm_ruby_package_name..."
333
+ rm -rf $dir/$rvm_ruby_package_name
334
+ else
335
+ __rvm_log "info" "it seems that $dir/$rvm_ruby_package_name is already non existent."
336
+ fi
337
+ if [ -e $rvm_bin_path/$rvm_ruby_package_name ] ; then
338
+ rm -f $rvm_bin_path/$rvm_ruby_package_name
339
+ fi
340
+ done ; unset dir
341
+ rm -rf $rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version*/
342
+ else
343
+ __rvm_log "fail" "Cannot uninstall unknown package '$rvm_ruby_package_name'"
344
+ fi
345
+
346
+ }