wayneeseguin-rvm 0.0.31 → 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.
data/config/db ADDED
@@ -0,0 +1,20 @@
1
+ niceness=0
2
+ ruby_repo_url=http://svn.ruby-lang.org/repos/ruby
3
+ rubinius_repo_url=git://github.com/evanphx/rubinius.git
4
+ macruby_repo_url=http://svn.macosforge.org/repository/ruby/MacRuby
5
+ jruby_repo_url=git://kenai.com/jruby~main
6
+ ruby_configure=--enable-shared
7
+ interpreter=ruby
8
+ ruby_version=1.8.6
9
+ ruby_patchlevel=383
10
+ jruby_version=1.3.1
11
+ ree_interpreter=ruby-enterprise
12
+ ree_version=1.8.6
13
+ ree_patch_level=20090610
14
+ macruby_version=2009-09-04
15
+ ruby_version=1.8.6
16
+ ruby_1.9.1_patch_level=p243
17
+ ruby_1.9.2_patch_level=preview1
18
+ ruby_1.8.5_patch_level=p115
19
+ ruby_1.8.6_patch_level=p383
20
+ ruby_1.8.7_patch_level=p174
data/rvm.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rvm}
8
- s.version = "0.0.31"
8
+ s.version = "0.0.35"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Wayne E. Seguin"]
12
- s.date = %q{2009-09-03}
12
+ s.date = %q{2009-09-05}
13
13
  s.description = %q{Manages Ruby interpreter installations and switching between them.}
14
14
  s.email = %q{wayneeseguin@gmail.com}
15
15
  s.executables = ["rvm-install", "rvm-update"]
@@ -20,13 +20,17 @@ Gem::Specification.new do |s|
20
20
  "INSTALL",
21
21
  "LICENCE",
22
22
  "README",
23
- "config/cache",
23
+ "config/db",
24
24
  "examples/rvmrc",
25
25
  "lib/rvm.rb",
26
26
  "rvm.gemspec",
27
27
  "scripts/rvm",
28
+ "scripts/rvm-cli",
28
29
  "scripts/rvm-install",
29
- "scripts/rvm-update"
30
+ "scripts/rvm-ruby-installer",
31
+ "scripts/rvm-selector",
32
+ "scripts/rvm-update",
33
+ "scripts/rvm-utility"
30
34
  ]
31
35
  s.homepage = %q{http://github.com/wayneeseguin/rvm}
32
36
  s.rdoc_options = ["--inline-source", "--charset=UTF-8"]
data/scripts/rvm CHANGED
@@ -1,1214 +1,17 @@
1
1
  #!/bin/bash
2
2
 
3
3
  #
4
- # License: See LICENSE
4
+ # rvm : Ruby Version Manager
5
+ # http://rvm.beginrescueend.com
6
+ # http://gitub.com/wayneeseguin/rvm
5
7
  #
6
8
 
7
- #
8
- # Functions
9
- #
10
- function __rvm_meta {
11
- rvm_meta_author="Wayne E. Seguin"
12
- rvm_meta_author_email="wayneeseguin@gmail.com"
13
- rvm_meta_website="http://rvm.beginrescueend.com/"
14
- rvm_meta_version="0.0.31"
15
- rvm_meta_updated="2009.09.03"
16
- }
17
-
18
- function __rvm_version { __rvm_meta ; echo "rvm $rvm_meta_version ($rvm_meta_updated) [$rvm_meta_website]" ; }
19
-
20
- function __rvm_usage {
21
-
22
- __rvm_meta
23
-
24
- cat <<-Usage
25
-
26
- rvm ${rvm_meta_version} ${rvm_meta_website} by ${rvm_meta_author} (${rvm_meta_author_email})
27
-
28
- Usage:
29
-
30
- rvm Action [Implementation] [Options]
31
-
32
- Action:
33
-
34
- * usage - Show this usage information
35
- use - Switch to using a specific ruby version (new login shell)
36
- info - Show information for current ruby
37
- list - Show currently installed versions
38
- gemdir - Switch to gem directory for installation (new login shell)
39
- srcdir - Switch to src directory for the current ruby installation
40
- gemdup - Clone source version gems to current version
41
- (highly expiramental) Example: rvm gemdup ~/.gem/ruby/1.8/
42
- install - Install a ruby version, default is from source
43
- uninstall - Uninstall a ruby version
44
- reset - Remove default and current settings, exit the shell.
45
- (If you experience odd behavior try this first)
46
- rubydo - Used with -f to run a ruby file against specified or all rubies
47
- debug - Emit environment & configuration information for *current* ruby
48
-
49
- reload - Reload rvm source itself (useful after changing rvm source)
50
- implode - Removes all ruby installations it manages, everything in ~/.rvm
51
- update - Upgrades rvm to the latest version.
52
-
53
- Implementation:
54
-
55
- * ruby - MRI/YARV Ruby (The Standard), defaults to 1.8.6
56
- jruby - jRuby
57
- rubinius - Rubinius
58
- ree - Ruby Enterprise Edition
59
- system - Use the system ruby (eg. pre-rvm state)
60
- default - Use rvm set default ruby and system if it hasn't been set.
61
-
62
- Options:
63
-
64
- -v|--version - Ruby Package Version, defaults to 'latest'
65
- -l|--level - Patch level for the specified Ruby version
66
- -p|--prefix - Package and source directory prefix, with trailing slash!
67
- Default is a users home directory and /usr/local/ for root
68
- -c|--configure - Options for source compile (default: --enable-shared=true)
69
- -a|--archives - Directory to place downladed files into (~/.rvm/archives/)
70
- -n|--nice - Niceness level (default: 0)
71
- -m|--gem-set - Named gem set for switching between different gem sets
72
- --rm-gem-set - Removes a named gemset.
73
-
74
- -l|--level - Specify a patch level to use
75
- -t|--tag -
76
- -r|--rev - Specify the repository revision # to use or 'head' for
77
-
78
- -P|--prefix - Sets the prefix path for installs to be installed to
79
- -B|--bin - Specify path for binaries to be placed
80
- -S|--source - Specify src directory to use
81
- -A|--archive - Specify archive directory to use (tabralls / zips)
82
- -G|--gems - Specify root gem path to use
83
- -C|--configure - Specify custom configure options, comma separated
84
- -M|--make - Specify a custom make command
85
- -I|--make-install - " a custom make install command
86
-
87
- -n|--nice - Specify a process niceness (for slow computers)
88
- -f|--file - Specify a ruby file to run with 'rubydo' command
89
- -h|--help - Emit this output and exit
90
- -d|--default - Set the default Ruby to a specified version
91
- -m|--gem-set - Use a named gem set instead of the default set.
92
- --all - Used with 'rvm list' to list "most" installable versions.
93
- --rm-gem-set - Remove a named gem set
94
- --jit - Enable JIT for the Rubinius build
95
- --force - Force install, removes old install & source directories.
96
- --set-prompt - Set prompt to have the selected ruby prepended.
97
- --debug|--trace - Toggle debug mode on for very verbose output.
98
-
99
- Resources:
100
-
101
- http://rvm.beginrescueend.com/
102
- https://www.pivotaltracker.com/projects/26822
103
-
104
- Usage
105
-
106
- }
107
-
108
- # Logging functions based on level
109
- function __rvm_log {
110
-
111
- case "$1" in
112
- debug) shift ; echo -e "\n\033[0;35m <d> $* \033[0m" ;;
113
- info) shift ; echo -e "\n\033[0;32m <i> $* \033[0m" ;;
114
- warn) shift ; echo -e "\n\033[0;33m <w> $* \033[0m" ;;
115
- fail) shift ; echo -e "\n\033[0;31m <e> $* \033[0m" ; popd 2> /dev/null ; return 1 ;;
116
- *) echo -e "$*"
117
- esac
118
- }
119
-
120
- function __rvm_clean-path {
121
- PATH=`echo $PATH | tr -s ':' '\n' | awk '!($0 in a){a[$0];print}' | tr -s '\n' ':' | sed 's/:$//'`
122
- export PATH
123
- }
124
-
125
- function __rvm_remove-from-path {
126
- PATH=`echo $PATH | tr -s ':' '\n' | grep -v "\.rvm" | tr -s '\n' ':' | sed 's/:$//'`
127
- export PATH
128
- }
129
-
130
- function __rvm_gi { gem install -q --no-rdoc --no-ri $* ; }
131
- function __rvm_gems-install { for gem in $* ; do __rvm_gi $gem ; done }
132
-
133
- function __rvm_set-defaults {
134
-
135
- # TODO: Store defaults in "defaults/" dir.
136
- if [ ! -s $rvm_install_path/default ] ; then
137
- for variable in rvm_prompt RUBY_VERSION GEM_HOME MY_RUBY_HOME PATH ; do
138
- eval value=\$${variable}
139
- if [ -z "$value" ] ; then
140
- echo "unset ${variable}" >> $rvm_install_path/default
141
- else
142
- eval "export $variable"
143
- eval value=\$${variable}
144
- echo "${variable}='$value' ; export ${variable}" >> $rvm_install_path/default
145
- fi
146
- done
147
- fi
148
-
149
- if [ -s $rvm_install_path/default_path ] ; then
150
- rvm_default_path=`cat $rvm_install_path/default_path`
151
- else
152
- __rvm_clean-path # Clean the path the first time we compute default path.
153
- __rvm_remove-from-path
154
- echo $PATH > $rvm_install_path/default_path
155
- rvm_default_path=$PATH
156
- fi
157
-
158
- rvm_default_ps1=`__rvm_cache rvm_default_ps1`
159
- if [ -z "$rvm_default_ps1" ] ; then
160
- rvm_default_ps1=$PS1
161
- __rvm_cache "rvm_default_ps1" "$rvm_default_ps1"
162
- fi
163
-
164
- if [ -s $rvm_install_path/default_user_gem_path ] ; then
165
- rvm_default_user_gem_path=`cat $rvm_install_path/default_user_gem_path`
166
- else
167
- ruby -r rubygems -e "puts Gem::default_path.compact.first" > $rvm_install_path/default_user_gem_path
168
- fi
169
-
170
- if [ -s $rvm_install_path/default_system_gem_path ] ; then
171
- rvm_default_system_gem_path=`cat $rvm_install_path/default_system_gem_path`
172
- else
173
- ruby -r rubygems -e "puts Gem::default_path.compact[1] || Gem::default_path.compact.first" > $rvm_install_path/default_system_gem_path
174
- fi
175
-
176
- if [ -s $rvm_install_path/default_system_ruby ] ; then
177
- default_system_ruby=`cat $rvm_install_path/default_system_ruby`
178
- else
179
- default_system_ruby=`which ruby`
180
- echo $default_system_ruby > $rvm_install_path/default_system_ruby
181
- fi
182
-
183
- }
184
-
185
- function __rvm_initialize {
186
-
187
- rvm_fetch=`which curl`
188
- if [ $? -ne 0 ] ; then
189
- rvm_fetch=`which wget`
190
- if [ $? -ne 0 ] ; then
191
- rvm_fetch="wget -q -c "
192
- else
193
- __rvm_log "fail" "rvm expects either curl or wget, neither seem to be in your path :("
194
- fi
195
- else
196
- rvm_fetch="$rvm_fetch -O -L -s -C - "
197
- fi
198
-
199
- rvm_niceness=${rvm_niceness:-0}
200
-
201
- # TODO: Sanitize user input, ensure that there is a / a the end...
202
- if [ "`whoami`" = "root" ] ; then
203
- __rvm_log "fail" "root user support is not yet implemented."
204
- #rvm_prefix_path=${rvm_prefix_path:-/usr/local/}
205
- else
206
- rvm_prefix_path=${rvm_prefix_path:-"$HOME/."}
207
- fi
208
- if [ "${rvm_prefix_path#${rvm_prefix_path%?}}" = '.' -o "${rvm_prefix_path#${rvm_prefix_path%?}}" = '/' ] ; then
209
- rvm_install_path="${rvm_prefix_path}rvm"
210
- else
211
- rvm_install_path="${rvm_prefix_path}/rvm"
212
- fi
213
- rvm_archives_path="${rvm_archives_path:-"${rvm_install_path}/archives"}"
214
- rvm_source_path="${rvm_source_path:-"${rvm_install_path}/src"}"
215
- rvm_log_path=${rvm_log_path:-"${rvm_install_path}/log"}
216
- rvm_bin_path=${rvm_bin_path:-"${rvm_install_path}/bin"}
217
- rvm_gem_path=${rvm_gem_path:-"${rvm_install_path}/gems"}
218
- rvm_config_path=${rvm_config_path:-"${rvm_install_path}/config"}
219
-
220
- rvm_ruby_repo_url="${rvm_ruby_repo_url:-"http://svn.ruby-lang.org/repos/ruby"}"
221
- # Rubinius sha1's will be available after RC1.
222
- rvm_rubinius_repo_url="${rvm_rubinius_repo_url:-"git://github.com/evanphx/rubinius.git"}"
223
- #rvm_macruby_repo_url="${rvm_macruby_repo_url:-"http://svn.macosforge.org/repository/ruby/MacRuby"}"
224
- rvm_macruby_repo_url="${rvm_macruby_repo_url:-"git://github.com/masterkain/macruby.git"}"
225
- rvm_jruby_repo_url="${rvm_jruby_repo_url:-"git://kenai.com/jruby~main"}"
226
-
227
- __rvm_clean-path
228
- rvm_result=$(echo $PATH | grep 'rvm\/bin:')
229
- if [ -z $rvm_result ] ; then
230
- PATH=$rvm_bin_path:$PATH ; export PATH
231
- fi
232
-
233
- mkdir -p $rvm_source_path $rvm_bin_path $rvm_archives_path
234
- }
235
-
236
- function __rvm_fetch {
237
-
238
- pushd $rvm_archives_path > /dev/null
239
- eval $rvm_fetch "$1"
240
- popd 2> /dev/null
241
-
242
- }
243
-
244
- function __rvm_install-source {
245
-
246
- if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
247
-
248
- __rvm_log "info" "Installing Ruby from source to: $rvm_ruby_home"
249
- mkdir -p $rvm_ruby_log_path
250
-
251
- pushd $rvm_source_path > /dev/null
252
-
253
- if [ ! -z "$rvm_force" ] ; then
254
- rm -rf $rvm_ruby_home
255
- rm -rf $rvm_ruby_src_path
256
- fi
257
-
258
- if [ -z "$rvm_ruby_tag" -a -z "$rvm_ruby_rev" ] ; then
259
- if [ ! -d $rvm_ruby_src_path ] ; then
260
- rvm_url="${rvm_url:-"ftp://ftp.ruby-lang.org/pub/ruby/1.$rvm_major_version/$rvm_ruby_package_name.tar.gz"}"
261
- __rvm_log "info" "\tDownloading $rvm_ruby_package_name, this may take a while depending on your connection..."
262
- __rvm_fetch $rvm_url
263
- 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
264
-
265
- __rvm_log "info" "\tExtracting $rvm_ruby_package_name ..."
266
- mkdir -p $rvm_ruby_src_path
267
- nice -n $rvm_niceness tar xzf $rvm_archives_path/$rvm_ruby_package_name.tar.gz -C $rvm_source_path
268
- fi
269
- else
270
- __rvm_log "info" "\tRetrieving Ruby from $rvm_url"
271
- if [ ! -z "`echo $rvm_url | grep '^git'`" ] ; then
272
- if [ -d "$rvm_ruby_src_path/.git" ] ; then
273
- cd $rvm_ruby_src_path
274
- if [ -z "$rvm_ruby_rev" ] ; then
275
- git pull origin master
276
- else
277
- git checkout ${rvm_ruby_rev:-HEAD}
278
- fi
279
- else
280
- git clone --depth 1 $rvm_ruby_repo_url $rvm_ruby_src_path
281
- fi
282
- else
283
- if [ -z "$rvm_ruby_rev" ] ; then
284
- # TODO: Check if tag v is valid
285
- rvm_url=$rvm_ruby_repo_url/tags/$rvm_ruby_tag
286
- rvm_rev=""
287
- else
288
- if [ "$rvm_ruby_rev" = "head" -o "$rvm_ruby_rev" = "trunk" ] ; then
289
- rvm_url=$rvm_ruby_repo_url/branches/ruby_1_${rvm_major_version}_${rvm_minor_version}
290
- rvm_rev=""
291
- else
292
- rvm_url=$rvm_ruby_repo_url/branches/ruby_1_${rvm_major_version}_${rvm_minor_version}
293
- rvm_rev="-r $rvm_ruby_rev"
294
- fi
295
- fi
296
-
297
- if [ -d "$rvm_ruby_src_path/.svn" ] ; then
298
- cd $rvm_ruby_src_path
299
- svn checkout -q $rvm_rev
300
- else
301
- svn checkout -q $rvm_rev --force $rvm_url $rvm_ruby_src_path
302
- fi
303
- fi
304
- fi
305
- cd $rvm_ruby_src_path
306
- 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
307
- if [ ! -s $rvm_ruby_src_path/Makefile -a "$rvm_ruby_interpreter" = "ruby" ] ; then autoconf ; fi
308
- 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
309
- if [ -s ./configure ] ; then
310
- __rvm_log "info" "\tConfiguring $rvm_ruby_package_name using $rvm_ruby_configure, this may take a while depending on your cpu(s)..."
311
- # command="nice -n $rvm_niceness ./configure --prefix=$rvm_ruby_home $rvm_ruby_configure"
312
- # eval $command > $rvm_ruby_log_path/configure.log 2> $rvm_ruby_log_path/configure.error.log
313
- __rvm_run "configure" ./configure --prefix=$rvm_ruby_home $rvm_ruby_configure
314
- 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
315
- else
316
- __rvm_log "warn" "\tSkipping configure step, ./configure file does not exist."
317
- fi
318
-
319
- __rvm_log "info" "\tCompiling $rvm_ruby_package_name, this may take a while, depending on your cpu(s)..."
320
- if [ -z "$rvm_ruby_make" ] ; then
321
- nice -n $rvm_niceness make > $rvm_ruby_log_path/make.log 2> $rvm_ruby_log_path/make.error.log
322
- else
323
- nice -n $rvm_niceness $rvm_ruby_make > $rvm_ruby_log_path/install.log 2> $rvm_ruby_log_path/install.error.log
324
- fi
325
- 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
326
- if [ -z "$rvm_ruby_make" ] ; then
327
- __rvm_log "info" "\tInstalling $rvm_ruby_package_name"
328
- nice -n $rvm_niceness make install > $rvm_ruby_log_path/install.log 2> $rvm_ruby_log_path/install.error.log
329
- else
330
- nice -n $rvm_niceness $rvm_ruby_make_install > $rvm_ruby_log_path/install.log 2> $rvm_ruby_log_path/install.error.log
331
- fi
332
- 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
333
-
334
- chmod +x $rvm_ruby_home/bin/*
335
-
336
- ruby_wrapper=$(cat <<-RubyWrapper
337
- #!/bin/bash
338
- GEM_HOME=$rvm_gem_home ; export GEM_HOME
339
- MY_RUBY_HOME=$rvm_ruby_home ; export MY_RUBY_HOME
340
- PATH=$rvm_ruby_home/bin:$rvm_gem_home/bin:$rvm_default_path ; export PATH
341
-
342
- exec "$rvm_ruby_binary" "\$@"
343
- RubyWrapper
344
- )
345
- echo "$ruby_wrapper" > $rvm_bin_path/$rvm_ruby_package_name
346
- unset ruby_wrapper
347
- chmod +x $rvm_bin_path/$rvm_ruby_package_name
348
- __rvm_log "info" "Installation of $rvm_ruby_package_name is complete."
349
-
350
- __rvm_log "info" "\tInstalling rubygems dedicated to $rvm_ruby_package_name..."
351
- rvm_gem_package_name="rubygems-1.3.5"
352
- rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
353
- if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
354
- cd $rvm_source_path/$rvm_gem_package_name
355
- else
356
- __rvm_fetch $rvm_gem_url
357
- 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
358
- mkdir -p $rvm_source_path/$rvm_gem_package_name
359
- nice -n $rvm_niceness tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
360
- fi
361
- # Well this is fun... fix nil error on require_paths:
362
- 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
363
-
364
- nice -n $rvm_niceness $rvm_ruby_home/bin/ruby $rvm_source_path/$rvm_gem_package_name/setup.rb > $rvm_ruby_log_path/rubygems.install.log 2> $rvm_ruby_log_path/rubygems.install.error.log
365
- popd 2> /dev/null
366
-
367
-
368
- for rvm_gem_name in rake ; do
369
- __rvm_log "info" "Installing $rvm_gem_name"
370
- nice -n $rvm_niceness $rvm_ruby_home/bin/gem install $rvm_gem_name --no-rdoc --no-ri -q >> $rvm_ruby_log_path/gems.install.log 2> $rvm_ruby_log_path/gems.error.log
371
- done
372
-
373
- for binary in gem irb erb ri rdoc testrb rake ; do
374
- if [ -x $rvm_ruby_home/bin/$binary ] ; then
375
- string="ENV['GEM_HOME']='$rvm_gem_home'\nENV['PATH']='$rvm_ruby_home/bin:$rvm_gem_home/bin'"
376
- awk "NR==2 {print \"$string\"} {print}" $rvm_ruby_home/bin/$binary > $rvm_ruby_home/bin/$binary.new
377
- mv $rvm_ruby_home/bin/$binary.new $rvm_ruby_home/bin/$binary
378
- chmod +x $rvm_ruby_home/bin/$binary
379
- else
380
- __rvm_log "warn" "$rvm_ruby_home/bin/$binary is missing"
381
- fi
382
- done
383
-
384
- __rvm_log "info" "Installation of rubygems for $rvm_ruby_package_name is complete."
385
- if [ -x $rvm_gem_home/bin/$binary ] ; then
386
- string="ENV['GEM_HOME']='$rvm_gem_home'\nENV['PATH']='$rvm_ruby_home/bin:$rvm_gem_home/bin'"
387
- mv $rvm_gem_home/bin/$binary $rvm_gem_home/bin/$binary.orig
388
- awk "NR==2 {print \"$string\"} {print}" $rvm_gem_home/bin/$binary.orig > $rvm_gem_home/bin/$binary
389
- chmod +x $rvm_gem_home/bin/$binary
390
- else
391
- __rvm_log "warn" "$rvm_gem_home/bin/$binary is missing"
392
- fi
393
-
394
- binary=rake
395
- mv $rvm_gem_home/bin/$binary $rvm_gem_home/bin/$binary.orig
396
- awk "NR==2 {print \"$string\"} {print}" $rvm_gem_home/bin/$binary.orig > $rvm_gem_home/bin/$binary
397
- unset binary
398
- }
399
-
400
- function __rvm_install-ruby {
401
-
402
- if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
403
-
404
- if [ -z "$RUBYOPT" ] ; then ruby_options=$RUBYOPT ; unset RUBYOPT ; fi
405
-
406
- case "$rvm_ruby_interpreter" in
407
-
408
- macruby)
409
- if [ "`uname`" = "Darwin" ] ; then
410
- rvm_ruby_repo_url=$rvm_macruby_repo_url
411
- rvm_ruby_configure=""
412
- rvm_ruby_make="rake macruby:build framework_instdir=$rvm_install_path/macruby-head framework_name=/macruby-head --trace"
413
- rvm_ruby_make_install="rake framework:install framework_instdir=$rvm_install_path/macruby-head framework_name=/macruby-head --trace"
414
- rvm_ruby_rev="${rvm_ruby_rev:-head}" # Hard coding this for now
415
-
416
- DESTDIR="$rvm_ruby_home" ; export DESTDIR
417
- if [ -z "$rvm_ruby_rev" ] ; then
418
- # TODO: Check if tag v is valid
419
- #rvm_ruby_repo_url=$rvm_ruby_repo_url/tags/$rvm_ruby_tag
420
- rvm_ruby_rev="head" # For now, until nightly release are available.
421
- else
422
- if [ "$rvm_ruby_rev" = "head" -o "$rvm_ruby_rev" = "trunk" ] ; then
423
- #rvm_ruby_repo_url=$rvm_ruby_repo_url/trunk
424
- rvm_ruby_rev="head"
425
- else
426
- #rvm_ruby_repo_url=$rvm_ruby_repo_url/trunk
427
- rvm_ruby_rev="-r $rvm_ruby_rev"
428
- fi
429
- fi
430
- __rvm_install-source
431
- unset DESTDIR
432
- else
433
- __rvm_log "fail" "MacRuby can only be installed on a Darwin OS."
434
- fi
435
- ;;
436
-
437
- ruby-enterprise|ree)
438
- rvm_url="http://rubyforge.org/frs/download.php/58677/$rvm_ruby_package_name.tar.gz"
439
- __rvm_log "info" "Installing Ruby Enterprise Edition from source to: $rvm_ruby_home"
440
- pushd $rvm_source_path > /dev/null
441
- if [ -d $rvm_ruby_src_path ] ; then
442
- cd $rvm_ruby_src_path
443
- else
444
- __rvm_log "info" "\tDownloading $rvm_ruby_package_name, this may take a while depending on your connection..."
445
- __rvm_fetch $rvm_url
446
- 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
447
- __rvm_log "info" "\tExtracting $rvm_ruby_package_name..."
448
- mkdir -p $rvm_ruby_src_path
449
- nice -n $rvm_niceness tar xzf $rvm_archives_path/$rvm_ruby_package_name.tar.gz -C $rvm_source_path
450
- fi
451
- 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
452
-
453
- __rvm_log "info" "\tInstalling $rvm_ruby_package_name, this may take a while, depending on your cpu(s)..."
454
- mkdir -p $rvm_ruby_log_path
455
-
456
- cd $rvm_ruby_src_path
457
- nice -n $rvm_niceness ./installer -a $rvm_install_path/ruby-enterprise-$rvm_ruby_version-$rvm_ruby_patch_level --dont-install-useful-gems --no-tcmalloc > $rvm_ruby_log_path/install.log 2> $rvm_ruby_log_path/install.error.log
458
- 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
459
- chmod +x $rvm_ruby_home/bin/*
460
-
461
- ln -fs $rvm_ruby_home/bin/ruby $rvm_install_path/bin/$rvm_ruby_package_name
462
-
463
- __rvm_log "info" "\tInstalling rubygems dedicated to $rvm_ruby_package_name..."
464
- rvm_gem_package_name="rubygems-1.3.5"
465
- rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
466
- if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
467
- cd $rvm_source_path/$rvm_gem_package_name
468
- else
469
- __rvm_fetch $rvm_gem_url
470
- 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
471
- mkdir -p $rvm_source_path/$rvm_gem_package_name
472
- nice -n $rvm_niceness tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
473
- fi
474
- 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
475
- # Well this is fun... fix nil error on require_paths:
476
- 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
477
-
478
- nice -n $rvm_niceness $rvm_ruby_home/bin/ruby $rvm_source_path/$rvm_gem_package_name/setup.rb > $rvm_ruby_log_path/rubygems.install.log 2> $rvm_ruby_log_path/rubygems.install.error.log
479
- __rvm_log "info" "Installation of $rvm_ruby_package_name complete."
480
- popd 2> /dev/null
481
-
482
- for rvm_gem_name in rake ; do
483
- __rvm_log "info" "Installing $rvm_gem_name"
484
- nice -n $rvm_niceness $rvm_ruby_home/bin/gem install $rvm_gem_name --no-rdoc --no-ri -q >> $rvm_ruby_log_path/gems.install.log 2> $rvm_ruby_log_path/gems.error.log
485
- done
486
- ;;
487
-
488
- rbx|rubinius)
489
- __rvm_reset # Requires 1.8 to install due to parsetree. TOOD: Check for 1.8 + parse-tree
490
- rvm_ruby_repo_url=$rvm_rubinius_repo_url
491
- rvm_ruby_configure=""
492
- rvm_ruby_make="rake"
493
- rvm_ruby_make_install="rake install"
494
- #rvm_ruby_rev="head"
495
- # TODO: Check if already git repo, then git pull origin master && build
496
- if [ ! -d $rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version -o ! -d $rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version/.git ] ; then
497
- rm -rf $rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version
498
- git clone --depth 1 $rvm_ruby_repo_url $rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version
499
- fi
500
- cd $rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version && $rvm_rubinius_jit rake build
501
- 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
502
- for binary in ruby irb ; do
503
- ln -fs $rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version/bin/rbx $rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version/bin/$binary
504
- done
505
- ;;
506
-
507
- jruby)
508
- rvm_package_file="$rvm_ruby_interpreter-bin-$rvm_ruby_version"
509
- rvm_url="http://dist.codehaus.org/$rvm_ruby_interpreter/$rvm_ruby_version/$rvm_package_file.zip"
510
- rvm_jruby_repo_url="${rvm_jruby_repo_url:-"git://kenai.com/jruby~main"}"
511
-
512
- __rvm_log "info" "Installing jRuby to: $rvm_ruby_home"
513
- mkdir -p $rvm_ruby_log_path
514
- pushd $rvm_source_path > /dev/null
515
-
516
-
517
- if [ ! -z "$rvm_ruby_rev" ] ; then
518
- if [ ! -d $rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version -o ! -d $rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version/.git ] ; then
519
- git clone --depth 1 $rvm_jruby_repo_url $rvm_ruby_src_path
520
- cd $rvm_ruby_src_path && ant
521
- fi
522
- else
523
- if [ -d $rvm_ruby_src_path ] ; then
524
- cd $rvm_ruby_src_path
525
- else
526
- __rvm_log "info" "\tDownloading $rvm_package_file, this may take a while depending on your connection..."
527
- __rvm_fetch $rvm_url
528
- __rvm_log "info" "\tExtracting $rvm_package_file..."
529
- nice -n $rvm_niceness unzip -q $rvm_archives_path/$rvm_package_file.zip -d $rvm_source_path
530
- cd $rvm_ruby_src_path
531
- fi
532
- fi
533
- 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
534
-
535
- __rvm_log "info" "\tInstalling $rvm_ruby_package_name..."
536
- mkdir -p $rvm_ruby_home/bin/
537
- rsync -ag $rvm_ruby_src_path/ $rvm_ruby_home/
538
- 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
539
- cd $rvm_ruby_src_path/tool/nailgun && make > $rvm_ruby_log_path/install.nailgun.log 2> $rvm_ruby_log_path/install.error.nailgun.log
540
- popd 2> /dev/null
541
- chmod +x $rvm_ruby_home/bin/*
542
- for binary in jruby jgem jirb ; do
543
- ln -fs $rvm_ruby_home/bin/$binary $rvm_ruby_home/bin/${binary#j}
544
- done
545
-
546
- ln -fs $rvm_ruby_home/bin/ruby $rvm_install_path/bin/$rvm_ruby_package_name
547
-
548
- for rvm_gem_name in rake jruby-openssl ; do
549
- __rvm_log "info" "Installing $rvm_gem_name"
550
- nice -n $rvm_niceness $rvm_ruby_home/bin/jgem install $rvm_gem_name --no-rdoc --no-ri -q >> $rvm_ruby_log_path/gems.install.log 2> $rvm_ruby_log_path/gems.error.log
551
- done
552
- ;;
553
-
554
- ruby)
555
- if [ -z "rvm_ruby_configure" ] ; then rvm_ruby_configure="--enable-shared=true" ; fi
556
- __rvm_install-source $*
557
- ;;
558
-
559
- default)
560
- __rvm_log "fail" "please specify a ruby implementation to install."
561
- ;;
562
-
563
- *) __rvm_log "fail" "Ruby implementation '$rvm_ruby_interpreter' is not known."
564
-
565
- esac
566
-
567
- if [ ! -z "$ruby_options" ] ; then
568
- RUBYOPT=$ruby_options ; export RUBYOPT
569
- fi
570
-
571
- }
572
-
573
- function __rvm_uninstall {
574
-
575
- if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
576
-
577
- if [ ! -z "$rvm_ruby_package_name" ] ; then
578
- for dir in $rvm_source_path $rvm_install_path ; do
579
- if [ -d $dir/$rvm_ruby_package_name ] ; then
580
- __rvm_log "info" "Removing $dir/$rvm_ruby_package_name..."
581
- rm -rf $dir/$rvm_ruby_package_name
582
- else
583
- __rvm_log "info" "it seems that $dir/$rvm_ruby_package_name is already non existent."
584
- fi
585
- if [ -e $rvm_bin_path/$rvm_ruby_package_name ] ; then
586
- rm -f $rvm_bin_path/$rvm_ruby_package_name
587
- fi
588
- done ; unset dir
589
- rm -rf $rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version*/
590
- else
591
- __rvm_log "fail" "Cannot uninstall unknown package '$rvm_ruby_package_name'"
592
- fi
593
-
594
- }
595
-
596
- # __rvm_select implementation version patch_level
597
- function __rvm_select {
598
-
599
- rvm_ruby_interpreter="${1:-$rvm_ruby_interpreter}"
600
- rvm_ruby_interpreter="${rvm_ruby_interpreter:-ruby}" # Default is standard ruby
601
-
602
- if [ "$rvm_ruby_version" = "1.8" ] ; then rvm_ruby_version="1.8.6" ; fi
603
- if [ "$rvm_ruby_version" = "1.9" ] ; then rvm_ruby_version="1.9.1" ; fi
604
-
605
- case "$rvm_ruby_interpreter" in
606
- macruby)
607
- if [ "`uname`" = "Darwin" ] ; then
608
- rvm_ruby_repo_url=$rvm_macruby_repo_url
609
- rvm_ruby_version="head" # For now we are only supporting latest
610
- unset rvm_ruby_patch_level
611
- else
612
- __rvm_log "fail" "MacRuby can only be installed on a Darwin OS."
613
- fi
614
- ;;
615
-
616
- rbx|rubinius)
617
- rvm_ruby_version="head"
618
- rvm_ruby_version="head"
619
- unset rvm_ruby_patch_level
620
- rvm_ruby_repo_url=$rvm_rubinius_repo_url
621
- rvm_ruby_configure=""
622
- rvm_ruby_make="build"
623
- rvm_ruby_make_install=""
624
- #rvm_ruby_rev="head"
625
- ;;
626
-
627
- jruby)
628
- rvm_ruby_version="${rvm_ruby_version:-1.3.1}"
629
- unset rvm_ruby_patch_level
630
- if [ "$rvm_ruby_version" != "1.2.0" -a "$rvm_ruby_version" != "1.3.1" ] ; then
631
- __rvm_log "fail" "Unknown jRuby version: $rvm_ruby_version"
632
- fi
633
- alias jruby_ng="jruby --ng"
634
- alias jruby_ng_server="jruby --ng-server"
635
- ;;
636
-
637
- ruby-enterprise|ree)
638
- rvm_ruby_interpreter="ruby-enterprise"
639
- rvm_ruby_version=${rvm_ruby_version:-1.8.6}
640
- rvm_ruby_patch_level="${3:-20090610}"
641
-
642
- if [ "$rvm_ruby_version" != "1.8.6" ] ; then
643
- __rvm_log "fail" "Unknown Ruby Enterprise Edition version: $rvm_ruby_version"
644
- fi
645
- ;;
646
-
647
- ruby)
648
- if [ ! -z "$rvm_ruby_tag" ] ; then
649
- rvm_ruby_version=$(echo $rvm_ruby_tag | sed 's/^v//' | sed 's/\///' | awk -F'_' '{print 1 "." $2 "." $3 }')
650
- rvm_ruby_patch_level=$rvm_ruby_tag # $(echo $rvm_ruby_tag | sed 's/^v//' | sed 's/\///' | awk -F'_' '{print $4 }')
651
- fi
652
-
653
- rvm_ruby_version=${rvm_ruby_version:-1.8.6} # Default verison is 1.8.6
654
- if [ "$rvm_ruby_version" = "1.9.1" ] ; then
655
- rvm_ruby_patch_level="${rvm_ruby_patch_level:-p243}"
656
-
657
- elif [ "$rvm_ruby_version" = "1.9.2" ] ; then
658
- rvm_ruby_patch_level="${rvm_ruby_patch_level:-preview1}"
659
-
660
- elif [ "$rvm_ruby_version" = "1.8.6" ] ; then
661
- rvm_ruby_patch_level="${rvm_ruby_patch_level:-p383}"
662
-
663
- elif [ "$rvm_ruby_version" = "1.8.7" ] ; then
664
- rvm_ruby_patch_level="${rvm_ruby_patch_level:-p174}"
665
-
666
- elif [ "$rvm_ruby_version" = "1.8.5" ] ; then
667
- rvm_ruby_patch_level="${rvm_ruby_patch_level:-p115}"
668
-
669
- elif [ "$rvm_ruby_version" = "1.8.0" -o "$rvm_ruby_version" = "1.8.1" -o "$rvm_ruby_version" = "1.8.2" -o "$rvm_ruby_version" = "1.8.3" -o "$rvm_ruby_version" = "1.8.4" ] ; then
670
- unset rvm_ruby_patch_level
671
-
672
- else
673
- __rvm_log "fail" "Unknown ruby version: $rvm_ruby_version"
674
- fi
675
- ;;
676
-
677
- default|system)
678
- #noop?
679
- ;;
680
- *)
681
- __rvm_log "fail" "Ruby implementation '$rvm_ruby_interpreter' is not known."
682
- esac
683
-
684
- if [ ! -z "$rvm_ruby_rev" ] ; then
685
- if [ "$rvm_ruby_rev" = "head" -o "$rvm_ruby_rev" = "trunk" ] ; then
686
- rvm_ruby_patch_level="head"
687
- else
688
- rvm_ruby_patch_level="$rvm_ruby_rev"
689
- fi
690
- fi
691
-
692
- if [ ! -z "$rvm_ruby_interpreter" -a ! -z "$rvm_ruby_version" ] ; then
693
- rvm_major_version=$(echo $rvm_ruby_version | awk -F'.' '{ print $2 }')
694
- rvm_minor_version=$(echo $rvm_ruby_version | awk -F'.' '{ print $3 }')
695
-
696
- if [ -z "$rvm_gem_set_name" ] ; then
697
- rvm_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version"
698
- else
699
- if [ ! -z "$rvm_gem_set_name_rm" -a -d $rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version-$rvm_gem_set_name ] ; then
700
- rm -rf $rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version-$rvm_gem_set_name/
701
- if [ "$rvm_gem_set_name_rm" = "$rvm_gem_set_name" ] ; then unset rvm_gem_set_name ; fi
702
- else
703
- rvm_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version-$rvm_gem_set_name"
704
- fi
705
- fi
706
- mkdir -p $rvm_gem_home
707
-
708
- if [ -z "$rvm_ruby_patch_level" ] ; then
709
- rvm_ruby_package_name="${rvm_ruby_package_name:-"$rvm_ruby_interpreter-$rvm_ruby_version"}"
710
- rvm_ruby_home="${rvm_ruby_home:-"$rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version"}"
711
- else
712
- rvm_ruby_package_name="${rvm_ruby_package_name:-"$rvm_ruby_interpreter-$rvm_ruby_version-$rvm_ruby_patch_level"}"
713
- rvm_ruby_home="${rvm_ruby_home:-"$rvm_install_path/$rvm_ruby_interpreter-$rvm_ruby_version-$rvm_ruby_patch_level"}"
714
- fi
715
- rvm_ruby_log_path="$rvm_log_path/$rvm_ruby_package_name"
716
- rvm_ruby_src_path="$rvm_source_path/$rvm_ruby_package_name"
717
- rvm_ruby_binary="$rvm_ruby_home/bin/ruby"
718
- rvm_ruby_irbrc="$rvm_ruby_home/.irbrc"
719
- rvm_selected=1
720
- else
721
- unset rvm_selected
722
- fi
723
-
724
- }
725
-
726
- function __rvm_use {
727
-
728
- if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
729
- if [ -z "$rvm_ruby_interpreter" ] ; then rvm_ruby_interpreter="default" ; fi
730
-
731
- if [ "$rvm_ruby_interpreter" = "default" -o "$rvm_ruby_interpreter" = "system" ] ; then
732
- unset GEM_HOME MY_RUBY_HOME IRBRC
733
- PATH="$rvm_default_path" ; export PATH
734
- if [ "$rvm_ruby_interpreter" = "default" -a -s $rvm_install_path/current ] ; then
735
- source $rvm_install_path/current
736
- fi
737
-
738
- else
739
- GEM_HOME=$rvm_gem_home ; export GEM_HOME
740
- MY_RUBY_HOME=$rvm_ruby_home ; export MY_RUBY_HOME
741
- IRBRC="$rvm_ruby_irbrc" ; export IRBRC
742
-
743
- # Install if not installed
744
- if [ ! -d $MY_RUBY_HOME ] ; then
745
- __rvm_log "warn" "$rvm_ruby_interpreter $rvm_ruby_version is not installed."
746
- __rvm_install-ruby $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level
747
- fi
748
-
749
- if [ ! -s "$rvm_ruby_irbrc" ] ; then
750
- rvm_irbrc_file=$(cat <<Config
751
- require "irb/completion" rescue nil
752
- @prompt = {
753
- :PROMPT_I => "${rvm_ruby_package_name} > ", # default prompt
754
- :PROMPT_S => "${rvm_ruby_package_name}%l> ", # known continuation
755
- :PROMPT_C => "${rvm_ruby_package_name} > ",
756
- :PROMPT_N => "${rvm_ruby_package_name} ?> ", # unknown continuation
757
- :RETURN => " => %s \n",
758
- :AUTO_INDENT => true
759
- }
760
- @prompt_mode = :DEFAULT
761
- IRB.conf[:PROMPT][@prompt_mode] = @prompt
762
- IRB.conf[:PROMPT_MODE] = @prompt_mode
763
-
764
- Config
765
- )
766
- if [ -s ~/.irbrc ] ; then
767
- cat ~/.irbrc > $rvm_ruby_home/.irbrc
768
- fi
769
- echo "$rvm_irbrc_file" >> $rvm_ruby_home/.irbrc
770
- fi
771
- PATH=$MY_RUBY_HOME/bin:$GEM_HOME/bin:$rvm_install_path/bin:$rvm_default_path ; export PATH
772
-
773
- rvm_prompt="$rvm_ruby_package_name" ; export rvm_prompt
774
- if [ ! -z "$rvm_set_prompt" -a ! -z "$PS1" ] ; then
775
- PS1="\033[0;32m${rvm_prompt}\033[0m:: ${rvm_default_ps1}" ; export PS1
776
- fi
777
-
778
- if [ ! -z "$rvm_set_default" ] ; then
779
- RUBY_VERSION="$($MY_RUBY_HOME/bin/ruby -v | sed 's/^\(.*\) (.*$/\1/')"
780
- export GEM_HOME MY_RUBY_HOME RUBY_VERSION
781
-
782
- echo "PATH=$MY_RUBY_HOME/bin:$GEM_HOME/bin:$rvm_install_path/bin:$rvm_default_path ; export PATH" > $rvm_install_path/current
783
-
784
- for variable in rvm_prompt RUBY_VERSION GEM_HOME MY_RUBY_HOME ; do
785
- eval "export $variable"
786
- eval value=\$${variable}
787
- echo "${variable}='$value' ; export ${variable}" >> $rvm_install_path/current
788
- done
789
- fi
790
- fi
791
- }
792
-
793
- function __rvm_symlinks {
794
-
795
- mkdir -p ${rvm_install_path}/bin
796
- for release in `/bin/ls $rvm_install_path | grep 'ruby-'` ; do
797
- for binary in irb gem rdoc ri erb ; do
798
- if [ -x $rvm_install_path/$release/bin/$binary ] ; then
799
- ln -fs $rvm_install_path/$release/bin/$binary $rvm_install_path/bin/$binary-${release#ruby-}
800
- fi
801
- done
802
- done
803
-
804
- }
805
-
806
- function __rvm_list {
807
-
808
- if [ "$rvm_all" ] ; then
809
- svn list http://svn.ruby-lang.org/repos/ruby/tags/ | grep 'v1_[8|9]' | sed 's/^v1_//' | sed 's/\/$//' | awk -F'_' '{print "1."$1"."$2 " -l "$3}' | sed 's/p$//'
810
-
811
- echo "jruby 1.2.0"
812
- echo "jruby 1.3.0"
813
- echo "jruby 1.3.1"
814
- echo "jruby head"
815
- echo "rubinius head"
816
- echo "rbx head"
817
- echo "ree 20090610"
818
- else
819
- echo -e "\nruby:\n$(/bin/ls -l $rvm_install_path/ | awk '/ ruby-[1-2].*/ { print " - " $NF }')\n"
820
- echo -e "jruby:\n$(/bin/ls -l $rvm_install_path/ | awk '/jruby-.*/ { print " - " $NF }')\n"
821
- echo -e "ree:\n$(/bin/ls $rvm_install_path/ | awk '/ruby-enterprise-.*/ { print " - " $NF }')\n"
822
- echo -e "system:\n - ($($default_system_ruby -v))\n"
823
- fi
824
-
825
- }
826
-
827
- function __rvm_reset {
828
-
829
- PATH="$rvm_install_path/bin:$rvm_default_path" ; export PATH
830
- for variable in RUBY_VERSION GEM_HOME MY_RUBY_HOME rvm_prompt ; do unset $variable ; done
831
- rm -f $rvm_install_path/default*
832
- rm -f $rvm_install_path/current
833
-
834
- __rvm_select "system"
835
-
836
- }
837
-
838
- function __rvm_implode {
839
- while : ; do
840
- __rvm_log "warn" "Are you SURE you wish for rvm to implode? This will remove $rvm_install_path ? (type 'yes' or 'no')"
841
- read response
842
- if [ "$response" = "yes" ] ; then
843
- if [ -d $rvm_install_path ] ; then
844
- __rvm_log "info" "Hai! Removing $rvm_install_path"
845
- rm -rf $rvm_install_path/
846
- else
847
- __rvm_log "info" "It appears that $rvm_install_path is already non existant."
848
- fi
849
- break
850
- elif [ "$response" = "no" ] ; then
851
- __rvm_log "info" "Cancelling implosion, no harm done :)"
852
- break
853
- fi
854
- done
855
- }
856
-
857
- function __rvm_gem-dir {
858
-
859
- if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
860
-
861
- mkdir -p $rvm_gem_home
862
- echo $rvm_gem_home
863
- }
864
-
865
- function __rvm_src-dir {
866
-
867
- if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
868
-
869
- if [ -z "$rvm_ruby_src_path" ] ; then
870
- __rvm_log "fail" "No source directory exists for the default implementation."
871
- else
872
- echo "$rvm_ruby_src_path"
873
- fi
874
-
875
- }
876
-
877
- # clones from source implementation/version to current
878
- function __rvm_gem-dup {
879
-
880
- if [ "$1" = "default" ] ; then
881
- rvm_source_gem_dir="$rvm_default_user_gem_path"
882
- elif [ "$1" = "system" ] ; then
883
- rvm_source_gem_dir="$rvm_default_system_gem_path"
884
- else
885
- rvm_source_gem_dir=${1:-$rvm_default_user_gem_path} # TODO: check for and remove trailing /gems
886
- fi
887
-
888
- if [ ! -z "$rvm_source_gem_dir" ] ; then
889
- for rvm_gem_name_version in `/bin/ls $rvm_source_gem_dir/gems` ; do
890
- rvm_gem_name=${rvm_gem_name_version%-*}
891
- rvm_gem_version=${rvm_gem_name_version##*-}
892
- if [ -d $GEM_HOME/gems/$rvm_gem_name_version ] ; then
893
- echo "$rvm_gem_name_version already installed."
894
- else
895
- __rvm_gi $rvm_source_gem_dir/cache/$rvm_gem_name-$rvm_gem_version.gem
896
- fi
897
- done
898
- unset rvm_gem_name_version rvm_gem_name rvm_gem_version
899
- else
900
- __rvm_log "fail" "Unknown $rvm_ruby_interpreter version: $rvm_ruby_version"
901
- fi
902
-
903
- }
904
-
905
- function __rvm_run {
906
- log_file="1" ; shift
907
- command="$*"
908
- if [ $rvm_debug ] ; then __rvm_log "debug" "Executing: $command" ; fi
909
- eval "nice -n $rvm_niceness $command" > $rvm_ruby_log_path/log_file.log 2> $rvm_ruby_log_path/log_file.error.log
910
- if [ $? -gt 0 ] ; then __rvm_log "error" "There was an error, please check $rvm_ruby_log_path/log_file.error.log" ; popd 2> /dev/null ; return 1 ; fi
911
- unset log_file command
912
- }
913
-
914
- function __rvm_cache {
915
- rvm_cache_file="$rvm_config_path/cache"
916
- touch $rvm_cache_file
917
- key="$1" ; shift
918
-
919
- if [ -z "$key" ] ; then
920
- __rvm_log "fail" "__rvm_cache must be called with at least one argument: __rvm_cache key [value]"
921
- else
922
- if [ "$key" = "unset" -o "$key" = "delete" ] ; then
923
- sed -i~ "s/^$2=.*$//" $rvm_cache_file
924
- else
925
- value="$*"
926
- if [ -z "$value" ] ; then # get
927
- grep "^$key=" $rvm_cache_file | awk -F'=' '{print $2}'
928
- else # set
929
- if [ -z "$(grep "^$key=" $rvm_cache_file)" ] ; then # append
930
- echo "$key=$value" >> $rvm_cache_file
931
- else # overwrite
932
- sed -i~ "s/^$key=.*$/$key=$value/" $rvm_cache_file
933
- fi
934
- fi
935
- fi
936
- fi
937
- }
938
-
939
- function __rvm_cleanup-variables {
940
- unset rvm_selected rvm_action rvm_ruby_interpreter rvm_ruby_patch_level rvm_ruby_version rvm_irbrc_file rvm_ruby_irbrc rvm_source_path rvm_install_path rvm_debug rvm_prefix_path rvm_ruby_package_name rvm_gem_path rvm_command rvm_error_message IRBRC rvm_ruby_home rvm_ruby_binary rvm_gem_set_name rvm_delete_flag rvm_ruby_tag rvm_ruby_rev rvm_url rvm_ruby_make rvm_ruby_make_install rvm_config_path rvm_bin_path rvm_force rvm_set_prompt rvm_all
941
- }
942
-
943
- function __rvm_get-user-defaults {
944
- # NOW load defaults settings. TODO: root user loads /etc/rvmrc
945
- if [ -s ~/.rvmrc ] ; then source ~/.rvmrc ; fi
946
- }
947
-
948
- function __rvm_parse-args {
949
- while [ $# -gt 0 ] ; do
950
- rvm_token="$1" ; shift
951
- case "$rvm_token" in
952
- install|uninstall|path|info|setup|version|srcdir|list|symlinks|reset|debug|reload|usage|help|implode|update)
953
- rvm_action=$rvm_token
954
- ;;
955
- use)
956
- rvm_action=$rvm_token
957
- if [ "$1" = "default" ] ; then
958
- rvm_ruby_interpreter="system" ; shift
959
- elif [ -z "$1" ] ; then
960
- rvm_ruby_interpreter="system"
961
- fi
962
- ;;
963
-
964
- ruby|jruby|ree|macruby|rbx|rubinius|default|all)
965
- rvm_ruby_interpreter="$rvm_token"
966
- rvm_action="${rvm_action:-use}"
967
- ;;
968
-
969
- gemdir)
970
- rvm_action=$rvm_token
971
-
972
- if [ "$1" = "system" ] ; then
973
- rvm_ruby_interpreter="system" ; shift
974
- fi
975
-
976
- if [ "$1" = "user" ] ; then
977
- rvm_ruby_interpreter="user" ; shift
978
- fi
979
-
980
- rvm_ruby_interpreter="${rvm_ruby_interpreter:-current}"
981
- ;;
982
-
983
- gemdup)
984
- rvm_action=$rvm_token
985
- if [ -z "$1" ] ; then
986
- rvm_ruby_interpreter="default"
987
- elif [ "$1" = "system" ] ; then
988
- rvm_ruby_interpreter=$1 ; shift
989
- elif [ "$1" = "default" ] ; then
990
- rvm_ruby_interpreter=$1 ; shift
991
- else
992
- rvm_ruby_interpreter=$1 ; shift
993
- rvm_ruby_version=$2 ; shift
994
- fi
995
- ;;
996
-
997
- do|rubydo)
998
- rvm_action=$rvm_token
999
- temp=$(echo $1 | awk '{print substr($1, 0, 1)}')
1000
- if [ "$temp" != "-" ] ; then
1001
- if [ ! -z "$(echo $temp | grep '[0-9]')" ] ; then
1002
- rvm_ruby_version=$(echo "$1" | tr ',' ' ') ; shift
1003
- else
1004
- rvm_ruby_version=$1 ; shift
1005
- fi
1006
- else
1007
- unset rvm_ruby_version
1008
- fi
1009
- unset rvm_ruby_interpreter
1010
- ;;
1011
-
1012
- 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)
1013
- rvm_ruby_interpreter="ruby"
1014
- rvm_ruby_version="$rvm_token"
1015
- rvm_action="${rvm_action:-use}"
1016
- ;;
1017
- 1.2.0|1.3.1)
1018
- rvm_ruby_interpreter="jruby"
1019
- rvm_ruby_version="$rvm_token"
1020
- rvm_action="${rvm_action:-use}"
1021
- ;;
1022
-
1023
- -v|--version)
1024
- if [ -z "$1" ] ; then
1025
- rvm_action="version"
1026
- else
1027
- rvm_ruby_version="$1"
1028
- fi
1029
- shift
1030
- ;;
1031
-
1032
- -t|--tag) rvm_ruby_tag="$1";
1033
- rvm_action="${rvm_action:-use}"
1034
- shift ;;
1035
- -r|--rev) rvm_ruby_rev="$1";
1036
- rvm_action="${rvm_action:-use}"
1037
- shift ;;
1038
- -b|--branch) rvm_ruby_rev="$1";
1039
- rvm_action="${rvm_action:-use}"
1040
- shift ;;
1041
-
1042
-
1043
- -P|--prefix) rvm_prefix_path="$1" ; shift ;;
1044
- -B|--bin) rvm_bin_path="$1" ; shift ;;
1045
- -S|--source) rvm_source_path="$1" ; shift ;;
1046
- -A|--archive) rvm_archives_path="$1" ; shift ;;
1047
- -G|--gems) rvm_gem_path="$1" ; shift ;;
1048
- -C|--configure)
1049
- if [ ! -z "$1" ] ; then
1050
- rvm_ruby_configure="$(echo $1 | tr ',' ' ')"
1051
- shift
1052
- else
1053
- rvm_action="error"
1054
- rvm_error_message="--configure *must* be followed by configure flags."
1055
- break;
1056
- fi
1057
- ;;
1058
- -M|--make) rvm_ruby_make="$1" ; shift ;;
1059
- -I|--make-install) rvm_ruby_make_install="$1" ; shift ;;
1060
- -l|--level) rvm_ruby_patch_level="$1" ; shift ;;
1061
- -n|--nice) rvm_niceness="$1" ; shift ;;
1062
- -f|--file) rvm_ruby_args="$1" ; shift ;;
1063
- -h|--help) rvm_action=help ; shift ;;
1064
- -d|--default) rvm_set_default=1 ;;
1065
- --head) rvm_ruby_rev="head" ;;
1066
- --trace|--debug) rvm_debug=1 ;;
1067
- --force) rvm_force=1 ;;
1068
- --set-prompt) rvm_set_prompt=1 ;;
1069
- --all) rvm_all=1 ; shift ;;
1070
- -m|--gem-set) rvm_gem_set_name="$1" ; shift ;;
1071
- --rm-gem-set) rvm_gem_set_name_rm="$1" ; shift ;;
1072
- --jit) rvm_rubinius_jit="RBX_LLVM=1" ;;
1073
-
1074
- default|system)
1075
- rvm_action="use"
1076
- rvm_ruby_interpreter="system"
1077
- ;;
1078
- *)
1079
- rvm_action="error"
1080
- rvm_error_message="Unrecognized command line argument(s): '$rvm_token $*'"
1081
- break;
1082
- esac
1083
- if [ ! -z "$rvm_ruby_args" -o ! -z "$rvm_error_message" ] ; then break; fi
1084
- done
1085
-
1086
- if [ ! -z "$rvm_error_message" ] ; then popd 2> /dev/null ; return 1 ; fi
1087
- if [ -z "$rvm_debug" ] ; then set +x ; else set -x ; fi
1088
-
1089
- }
1090
-
1091
- function rvm {
1092
-
1093
- __rvm_cleanup-variables
1094
- __rvm_get-user-defaults
1095
- __rvm_initialize
1096
- __rvm_set-defaults
1097
- __rvm_parse-args $*
1098
-
1099
- case "$rvm_action" in
1100
- install) __rvm_install-ruby $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
1101
- uninstall) __rvm_uninstall $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
1102
- use) __rvm_use $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
1103
- list) __rvm_list ;;
1104
- gemdir) __rvm_gem-dir $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
1105
- srcdir) __rvm_src-dir $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
1106
- gemdup) __rvm_gem-dup $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
1107
- symlinks) __rvm_symlinks ;;
1108
- version) __rvm_version ;;
1109
- rubydo)
1110
- if [ ! -z "$rvm_ruby_version" ] ; then
1111
- rvm_ruby_versions=$(echo $rvm_ruby_version | tr ',' ' ')
1112
- for rvm_ruby_version in $rvm_ruby_versions ; do
1113
- temp=$(echo $rvm_ruby_version | awk '{print substr($1, 0, 1)}')
1114
- if [ ! -z "$(echo $temp | grep '[0-9]')" ] ; then
1115
- rvm_ruby_interpreter="ruby"
1116
- else
1117
- rvm_ruby_interpreter="$rvm_ruby_version"
1118
- unset rvm_ruby_version
1119
- fi
1120
- unset temp
1121
- __rvm_select $rvm_ruby_interpreter $rvm_ruby_version
1122
-
1123
- rvm_command="$rvm_ruby_binary $rvm_ruby_args"
1124
- echo "$(basename $rvm_ruby_binary):"
1125
- eval $rvm_command
1126
- unset rvm_ruby_interpreter rvm_ruby_patch_level rvm_ruby_version rvm_ruby_package_name rvm_ruby_home rvm_ruby_irbrc rvm_ruby_binary
1127
- done
1128
- else # all
1129
- rvm_ruby_versions=`/bin/ls $rvm_install_path/bin/ruby-*`
1130
- for rvm_ruby_binary in $rvm_ruby_versions ; do
1131
- if [ -x $rvm_ruby_binary ] ; then
1132
- rvm_command="$rvm_ruby_binary $rvm_ruby_args"
1133
- echo "$(basename $rvm_ruby_binary):"
1134
- eval $rvm_command
1135
- fi
1136
- done
1137
- fi
1138
- ;;
1139
- reset) __rvm_reset ;;
1140
- # TODO: how can we use bin_path here for reload, default file?
1141
- reload) source ~/.rvm/scripts/rvm ;;
1142
- implode) __rvm_implode ;;
1143
- update)
1144
- if [ "$rvm_ruby_rev" = "head" ] ; then
1145
- if [ -d $rvm_source_path/rvm/.git ] ; then
1146
- cd $rvm_source_path/rvm/ && git pull origin master
1147
- else
1148
- cd $rvm_source_path && git clone git://github.com/wayneeseguin/rvm.git && cd rvm/
1149
- fi
1150
- ./scripts/rvm-update
1151
- else
1152
- # TODO: rvm_install_path:
1153
- gem install rvm --no-rdoc --no-ri -q && rvm-update && source ~/.rvm/scripts/rvm
1154
- fi
1155
- ;;
1156
- error) __rvm_log "fail" "$rvm_error_message ( see: rvm usage )" ; popd 2> /dev/null ; return 1; ;;
1157
- info|debug)
1158
- __rvm_version
1159
- cat <<-Info
1160
-
1161
- ruby:
1162
- interpreter: "$(ruby -v | awk '{print $1}')"
1163
- version: "$(ruby -v | awk '{print $2}')"
1164
- date: "$(ruby -v | sed 's/^.*(\([0-9]\{4\}\(-[0-9][0-9]\)\{2\}\).*$/\1/')"
1165
- platform: "$(ruby -v | sed 's/^.*\[//' | sed 's/\].*$//')"
1166
- patchlevel: "$(ruby -v | sed 's/^.*(//' | sed 's/).*$//')"
1167
- full_version: "$(ruby -v)"
1168
-
1169
- homes:
1170
- gem: "${GEM_HOME:-'not set'}"
1171
- ruby: "${MY_RUBY_HOME:-'not set'}"
1172
-
1173
- binaries:
1174
- ruby: "$(which ruby)"
1175
- irb: "$(which irb)"
1176
- gem: "$(which gem)"
1177
-
1178
- environment:
1179
- GEM_HOME: "$GEM_HOME"
1180
- MY_RUBY_HOME: "$MY_RUBY_HOME"
1181
- IRBRC: "$IRBRC"
1182
- Info
1183
-
1184
- if [ "$rvm_action" = "debug" ] ; then
1185
- __rvm_log "info" "PATH:$(echo $PATH | awk -F":" '{print $1":"$2":"$3":"$4":"$5}')"
1186
- for file in .bash_profile .bashrc .zshrc ; do
1187
- if [ -s $file ] ; then
1188
- __rvm_log "debug" "~/$file:\n$(cat ~/$file | grep rvm)\n"
1189
- fi
1190
- done
1191
- if [ -s $rvm_install_path/current ] ; then
1192
- __rvm_log "debug" "$rvm_install_path/current:\n$($rvm_install_path/current)\n"
1193
- fi
1194
- if [ -e $rvm_install_path/bin/rvm ] ; then
1195
- __rvm_log "debug" "rvm script in bin:\n$(ls -laht $rvm_install_path/bin/rvm)"
1196
- fi
1197
- fi
1198
- return 0
1199
- ;;
1200
- usage|help) __rvm_usage ;;
1201
- *)
1202
- if [ ! -z "$rvm_action" ] ; then
1203
- __rvm_log "fail" "unknown action '$rvm_action'"
1204
- else
1205
- __rvm_usage
1206
- fi
1207
- return 1
1208
- esac
1209
-
1210
- if [ "$rvm_debug" = "1" ] ; then set +x ; unset rvm_debug ; fi
1211
- }
9
+ if [ -s ~/.rvmrc ] ; then source ~/.rvmrc ; fi
10
+ eval rvm_path="${rvm_path:-~/.rvm}"
1212
11
 
1213
- if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi # magic :)
12
+ source $rvm_path/scripts/rvm-utility
13
+ source $rvm_path/scripts/rvm-selector
14
+ source $rvm_path/scripts/rvm-ruby-installer # TODO: Script not function.
15
+ source $rvm_path/scripts/rvm-cli
1214
16
 
17
+ if [ -f ~/.rvm/current ] ; then source ~/.rvm/current ; fi