rvm 0.0.97 → 0.0.98

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -35,6 +35,7 @@ Implementation
35
35
  jruby - JRuby
36
36
  rbx - rubinius
37
37
  ree - ruby Enterprise Edition
38
+ ironruby - IronRuby
38
39
  mput - shyouhei(mput)'s github repository
39
40
  system - use the system ruby (eg. pre-rvm state)
40
41
  default - use rvm set default ruby and system if it hasn't been set.
@@ -10,7 +10,7 @@ add(){
10
10
  fi
11
11
  }
12
12
 
13
- if which ruby 2>/dev/null | grep -q 'rvm' ; then
13
+ if [[ ! -z "$(which ruby 2>/dev/null | awk '/rvm/{print}')" ]] ; then
14
14
  unset format
15
15
  while [[ $# -gt 0 ]] ; do
16
16
  token="$1" ; shift
@@ -31,11 +31,18 @@ if which ruby 2>/dev/null | grep -q 'rvm' ; then
31
31
  fi
32
32
 
33
33
  ruby_string=$(dirname "$(which ruby 2>/dev/null)" | xargs dirname | xargs basename)
34
-
35
- (( $interpreter_flag )) && interpreter="$(echo $ruby_string | awk -F'-' '{print $1}')"
36
- (( $version_flag )) && version="$(echo $ruby_string | awk -F'-' '{print $2}')"
37
- (( $patchlevel_flag )) && patchlevel=$(echo $ruby_string | awk -F'-' '{print $3}')
38
- (( $architecture_flag )) && architecture="$(echo "$(ruby -v)" | sed 's/^.*\[//' | sed 's/\].*$//')"
34
+ if [[ ! -z "$interpreter_flag" ]] ; then
35
+ interpreter="$(echo $ruby_string | awk -F'-' '{print $1}')"
36
+ fi
37
+ if [[ ! -z "$version_flag" ]] ; then
38
+ version="$(echo $ruby_string | awk -F'-' '{print $2}')"
39
+ fi
40
+ if [[ ! -z "$patchlevel_flag" ]] ; then
41
+ patchlevel=$(echo $ruby_string | awk -F'-' '{print $3}')
42
+ fi
43
+ if [[ ! -z "$architecture_flag" ]] ; then
44
+ architecture="$(echo "$(ruby -v)" | sed 's/^.*\[//' | sed 's/\].*$//')"
45
+ fi
39
46
 
40
47
  command="prompt=\"[$format]\""
41
48
  eval "$command"
@@ -43,3 +50,4 @@ if which ruby 2>/dev/null | grep -q 'rvm' ; then
43
50
  fi
44
51
 
45
52
  exit 0
53
+
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env bash
2
+ eval "sudo GEM_HOME=$GEM_HOME GEM_PATH=$GEM_PATH PATH=$PATH" "$@"
data/config/db CHANGED
@@ -22,8 +22,8 @@ ree_1.8.6_repo_url=git://github.com/FooBarWidget/rubyenterpriseedition.git
22
22
  ree_1.8.7_url=http://rubyforge.org/frs/download.php/66162
23
23
  ree_1.8.7_repo_url=git://github.com/FooBarWidget/rubyenterpriseedition187.git
24
24
  ree_1.8.7_patch_level=2009.10
25
- rbx_version=1.0.0-rc1
26
- rbx_patch_level=20091125
25
+ rbx_version=1.0.0
26
+ rbx_patch_level=rc1
27
27
  rbx_url=http://asset.rubini.us/rubinius-1.0.0-rc1-20091125.tar.gz
28
28
  ruby_1.9.1_patch_level=376
29
29
  ruby_1.9.2_patch_level=preview1
data/install CHANGED
@@ -3,7 +3,7 @@
3
3
  if [[ -f /etc/rvmrc ]] ; then source /etc/rvmrc ; fi
4
4
  if [[ -f "$HOME/.rvmrc" ]] ; then source "$HOME/.rvmrc" ; fi
5
5
 
6
- if [[ ! -d "$rvm_path" ]] || [[ "$rvm_path" = "/" ]] ; then
6
+ if ! [[ "$rvm_path" =~ /rvm/?$ ]] ; then
7
7
  unset rvm_path
8
8
  if [[ "root" = "$(whoami)" ]] ; then
9
9
  rvm_path="/usr/local/rvm"
@@ -12,6 +12,7 @@ if [[ ! -d "$rvm_path" ]] || [[ "$rvm_path" = "/" ]] ; then
12
12
  fi
13
13
  fi
14
14
 
15
+ source scripts/utility
15
16
  source scripts/initialize
16
17
 
17
18
  #
@@ -54,7 +55,7 @@ fi
54
55
  echo -e "\n Installing bin scripts to $rvm_path/bin ..."
55
56
  # Cleanse and purge...
56
57
  rm -f $rvm_path/bin/rvm ; rm -rf $rvm_path/bin/binscripts
57
- for file in rvm-prompt rvm ; do
58
+ for file in rvm-prompt rvm rvmsudo ; do
58
59
  cp -f "$source_dir/binscripts/$file" $rvm_path/bin/
59
60
  done
60
61
  chmod +x $rvm_path/bin/*
@@ -68,7 +69,7 @@ if [[ "$rvm_loaded_flag" != "1" ]] ; then
68
69
  if [[ ! -f $rcfile ]] ; then touch $rcfile ; fi
69
70
  if [[ -s "$HOME/.profile" ]] ; then
70
71
  if ! grep -q '.profile' "$rcfile" ; then
71
- echo " Adding 'if [[ -s $HOME/.profile ]] ; then source $HOME ; fi' to $rcfile."
72
+ echo " Adding 'if [[ -s \$HOME/.profile ]] ; then source \$HOME ; fi' to $rcfile."
72
73
  echo -e "\n# rvm-install added line:\nif [[ -s \$HOME/.profile ]] ; then source \$HOME/.profile ; fi\n" >> $rcfile
73
74
  fi
74
75
  fi
@@ -81,6 +82,7 @@ fi
81
82
 
82
83
  if [[ "root" = "$(whoami)" ]] ; then
83
84
  echo -e "\n Symlinking rvm to $rvm_symlink_path/rvm ..."
85
+ mkdir -p $rvm_symlink_path
84
86
  ln -nfs $rvm_path/bin/rvm $rvm_symlink_path/rvm
85
87
  chmod +x $rvm_symlink_path/rvm
86
88
  fi
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 0
4
- :patch: 97
4
+ :patch: 98
@@ -1,15 +1,15 @@
1
1
  # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
2
+ # DO NOT EDIT THIS FILE
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rvm}
8
- s.version = "0.0.97"
8
+ s.version = "0.0.98"
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-12-17}
12
+ s.date = %q{2009-12-21}
13
13
  s.default_executable = %q{rvm-install}
14
14
  s.description = %q{Manages Ruby interpreter installations and switching between them.}
15
15
  s.email = %q{wayneeseguin@gmail.com}
@@ -22,6 +22,7 @@ Gem::Specification.new do |s|
22
22
  "README",
23
23
  "binscripts/rvm",
24
24
  "binscripts/rvm-prompt",
25
+ "binscripts/rvmsudo",
25
26
  "config/db",
26
27
  "config/md5",
27
28
  "examples/rvmrc",
@@ -89,4 +90,3 @@ Gem::Specification.new do |s|
89
90
  else
90
91
  end
91
92
  end
92
-
@@ -49,7 +49,7 @@ __rvm_parse_args() {
49
49
  rvm_ruby_string="$rvm_token"
50
50
  ;;
51
51
 
52
- jruby|ree|macruby|rbx|rubinius|mput|shyouhei|default|all)
52
+ jruby|ree|macruby|rbx|rubinius|mput|shyouhei|ironruby|default|all)
53
53
  rvm_ruby_interpreter="$rvm_token"
54
54
  rvm_ruby_string="$rvm_token"
55
55
  rvm_action="${rvm_action:-use}"
@@ -110,7 +110,7 @@ __rvm_parse_args() {
110
110
  rvm_ruby_version=$(echo "$1" | tr ',' ' ') ; shift
111
111
  unset rvm_ruby_interpreter
112
112
  else
113
- if $rvm_scripts_path/match "rbx jruby rubinius macruby ree mput shyouhei" "$1" ; then
113
+ if $rvm_scripts_path/match "ruby rbx jruby macruby ree rubinius mput shyouhei ironruby" "$1" ; then
114
114
  rvm_ruby_interpreter=$1 ; shift
115
115
  else
116
116
  unset rvm_ruby_interpreter rvm_ruby_version
@@ -266,8 +266,10 @@ __rvm_parse_args() {
266
266
  tests|specs) rvm_action="tests" ;;
267
267
  --trace) export rvm_trace_flag=1 ; set -x ;;
268
268
  --symlink) rvm_symlink_name="$1" ; shift ;;
269
+ --disable-llvm|--disable-jit) export rvm_jit_flag=0 ;;
270
+ --enable-llvm|--enable-jit) export rvm_jit_flag=1 ;;
269
271
 
270
- --self|--gem|--rubygems|--reconfigure|--default|--debug|--force|--all|--dump|--summary|--jit|--latest|--yaml|--json|--archive|--shebang|--env|--path|--tail|--delete|--verbose|--load|--passenger|--editor)
272
+ --self|--gem|--rubygems|--reconfigure|--default|--debug|--force|--all|--dump|--summary|--latest|--yaml|--json|--archive|--shebang|--env|--path|--tail|--delete|--verbose|--load|--passenger|--editor)
271
273
  export rvm_$(echo $rvm_token | sed 's#-##g')_flag=1
272
274
  if [[ "--debug" = "$rvm_token" ]] ; then export rvm_debug_flag ; fi
273
275
  ;;
@@ -428,9 +430,9 @@ rvm() {
428
430
  result=1
429
431
  esac
430
432
 
431
- if [[ "$rvm_reload_flag" -eq 1 ]] ; then source "$rvm_path/scripts/rvm" ; fi
433
+ if [[ ! -z "$rvm_reload_flag" ]] ; then source "$rvm_path/scripts/rvm" ; fi
432
434
 
433
- if [[ "$rvm_trace_flag" -eq 1 ]] ; then set +x ; unset rvm_trace_flag ; fi
435
+ if [[ ! -z "$rvm_trace_flag" ]] ; then set +x ; unset rvm_trace_flag ; fi
434
436
 
435
437
  return $result
436
438
  }
@@ -123,7 +123,6 @@ function _rvm {
123
123
 
124
124
  __rvm_cleanup_variables
125
125
  __rvm_load_rvmrc
126
- __rvm_initialize
127
126
  __rvm_load_defaults
128
127
  __rvm_parse_args $@
129
128
 
@@ -13,22 +13,22 @@ if [[ -z "$1" ]] ; then $rvm_scripts_path/log "fail" "BUG: $0 called without an
13
13
 
14
14
  archive=$(basename "$1") ; downlaod=1
15
15
 
16
- (( $rvm_debug_flag )) && $rvm_scripts_path/log "debug" "Fetching $archive"
16
+ if [[ ! -z "$rvm_debug_flag" ]] ; then $rvm_scripts_path/log "debug" "Fetching $archive" ; fi
17
17
 
18
18
  # Check first if we have the correct archive
19
19
  archive_md5="$($rvm_scripts_path/db "$rvm_config_path/md5" "$archive")"
20
20
  if [[ -e "$archive" ]] && [[ ! -z "$archive_md5" ]] ; then
21
- (( $rvm_debug_flag )) && $rvm_scripts_path/log "debug" "Found archive and its md5, testing correctness"
21
+ if [[ ! -z "$rvm_debug_flag" ]] ; then $rvm_scripts_path/log "debug" "Found archive and its md5, testing correctness" ; fi
22
22
  if [[ $($rvm_scripts_path/md5 $archive $archive_md5) -gt 0 ]] ; then
23
- (( $rvm_debug_flag )) && $rvm_scripts_path/log "debug" "Archive is bad, downloading"
23
+ if [[ ! -z "$rvm_debug_flag" ]] ; then $rvm_scripts_path/log "debug" "Archive is bad, downloading" ; fi
24
24
  download=1
25
25
  else
26
- (( $rvm_debug_flag )) && $rvm_scripts_path/log "debug" "Archive is good, not downloading"
26
+ if [[ ! -z "$rvm_debug_flag" ]] ; then $rvm_scripts_path/log "debug" "Archive is good, not downloading" ; fi
27
27
  download=0
28
28
  result=0
29
29
  fi ; unset archive_md5
30
30
  else
31
- (( $rvm_debug_flag )) && $rvm_scripts_path/log "debug" "No archive or no MD5, downloading"
31
+ if [[ ! -z "$rvm_debug_flag" ]] ; then $rvm_scripts_path/log "debug" "No archive or no MD5, downloading" ; fi
32
32
  download=1
33
33
  fi
34
34
 
@@ -44,7 +44,7 @@ if [[ $download -gt 0 ]] ; then
44
44
  rm -f "$archive"
45
45
  retry=1
46
46
  elif [[ $result -eq 33 ]] ; then
47
- (( $rvm_debug_flag )) && $rvm_scripts_path/log "debug" "Server does not support 'range' command, removing '$archive'"
47
+ if [[ ! -z "$rvm_debug_flag" ]] ; then $rvm_scripts_path/log "debug" "Server does not support 'range' command, removing '$archive'" ; fi
48
48
  rm -f "$archive"
49
49
  retry=1
50
50
  else
@@ -22,7 +22,7 @@ __rvm_gems_dir() {
22
22
 
23
23
  __rvm_gems_list() {
24
24
  if [[ $rvm_dir =~ rvm ]] ; then
25
- for gemdir in $rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%* ; do
25
+ for gemdir in "${rvm_gem_path}"/${rvm_ruby_string}%* ; do
26
26
  echo "$gemdir" | awk -F'%' '{print $2}'
27
27
  done
28
28
  fi
@@ -30,7 +30,7 @@ __rvm_gems_list() {
30
30
 
31
31
  __rvm_gems_delete() {
32
32
  if [[ ! -z "$rvm_gem_set_name" ]] ; then
33
- gemdir="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
33
+ gemdir="$rvm_gem_path/$rvm_ruby_string%$rvm_gem_set_name"
34
34
  if [[ -d "$gemdir" ]] && [[ ! -z "$rvm_force_flag" ]] ; then
35
35
  rm -rf "$gemdir"
36
36
  elif [[ -d "$gemdir" ]] ; then
@@ -64,9 +64,10 @@ __rvm_gems_dump() {
64
64
  fi
65
65
  fi
66
66
 
67
+ $rvm_scripts_path/log "info" "Dumping current environments gems to $rvm_file_name"
68
+
67
69
  touch $rvm_file_name
68
70
  echo "# $rvm_file_name generated gem dump file. Note that any env variable settings will be missing. Append these after using a ';' field separator" > $rvm_file_name
69
-
70
71
  for gem in $(gem list | sed 's#[\(|\)]##g' | sed 's#, #,#g' | tr ' ' ';') ; do
71
72
  name="$(echo $gem | awk -F';' '{print $1}')"
72
73
  if [[ -z "$rvm_latest_flag" ]] ; then
@@ -114,8 +115,7 @@ __rvm_gems_load() {
114
115
 
115
116
  while read -r line
116
117
  do # Keep this on 2nd line :(
117
- __rvm_parse_gem_line $line
118
- __rvm_gem_install
118
+ __rvm_gem_install $line
119
119
  done < <(awk '/^[\.\/a-zA-Z]/{print}' "$rvm_file_name")
120
120
  else
121
121
  $rvm_scripts_path/log "error" "$rvm_file_name does not exist to load from."
@@ -156,7 +156,7 @@ __rvm_parse_gem_line() {
156
156
  __rvm_gem_install() {
157
157
  __rvm_parse_gem_line $*
158
158
 
159
- installed_gem="$(ls ${rvm_ruby_gem_home}/specifications/${gem_file_name}spec 2>/dev/null | head -n 1)"
159
+ installed_gem="$(ls ${rvm_ruby_gem_home}/specifications/${gem_file_name}*spec 2>/dev/null | head -n 1)"
160
160
  if [[ -z "$rvm_force_flag" ]] && [[ -f "$installed_gem" ]] ; then
161
161
  unset gem
162
162
  $rvm_scripts_path/log "info" "$color_green$gem_name $gem_version$yellow exists, skipping (--force to re-install)"
@@ -202,19 +202,17 @@ __rvm_gem_install() {
202
202
  # TODO: Set vars if fourth field is non-empty (means that there are conditional statements to execute in the gem install line.
203
203
  if [[ "rvm_make_flags_flag" -eq 1 ]] ; then __rvm_make_flags ; fi
204
204
 
205
- $rvm_scripts_path/log "warn" "$gem_name $gem_version is not installed, installing..."
206
205
  if [[ ! -z "$rvm_ruby_gem_home" ]] ; then
207
- command="GEM_HOME='$rvm_ruby_gem_home' GEM_PATH='$rvm_ruby_gem_home' $gem_prefix $rvm_ruby_home/bin/gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
206
+ command="GEM_HOME='$rvm_ruby_gem_home' GEM_PATH='$rvm_ruby_gem_home' $gem_prefix gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
208
207
  else
209
- command="$gem_prefix $rvm_ruby_home/bin/gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
208
+ command="$gem_prefix gem install --no-rdoc --no-ri -q $gem $gem_postfix $vars"
210
209
  fi
211
-
212
- eval $command >> "$rvm_path/log/$rvm_ruby_string/gem.install.log" 2>> "$rvm_path/log/$rvm_ruby_string/gem.install.error.log"
210
+ __rvm_run "gem.install" "$command" "$gem_name $gem_version is not installed, installing..."
213
211
  result=$?
214
212
  if [[ $result -eq 0 ]] ; then
215
213
  $rvm_scripts_path/log "info" "$color_green$gem_name $gem_version$color_none installed."
216
214
  else
217
- $rvm_scripts_path/log "error" "$color_red$gem_name $gem_version$color_none failed to install, output logged to $rvm_path/log/$rvm_ruby_string/gem.install.error.log"
215
+ $rvm_scripts_path/log "error" "$color_red$gem_name $gem_version$color_none failed to install, output has been logged to:\n$rvm_path/log/$rvm_ruby_string/gem.install.error.log"
218
216
  fi
219
217
  fi ; unset gem gem_prefix gem_name gem_version gem_file_name gem_postfix cache_file gem_file_name gem_string
220
218
  return $result
@@ -1,15 +1,16 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  if [[ "root" = "$(whoami)" ]] ; then
4
- rvm_rc_files="/etc/profile /etc/zshenv"
4
+ rvm_rc_files="${rvm_rc_files:-"/etc/profile /etc/zshenv"}"
5
5
  else
6
- rvm_rc_files="$HOME/.bash_profile $HOME/.bashrc $HOME/.zshrc"
6
+ rvm_rc_files="${rvm_rc_files:-"$HOME/.bash_profile $HOME/.bashrc $HOME/.zshenv"}"
7
7
  fi
8
8
 
9
9
  if [[ ! -z "$rvm_archflags" ]] ; then rvm_make_flags_flag=1 ; fi
10
10
 
11
11
  rvm_project_rvmrc="${rvm_project_rvmrc:-1}"
12
12
  rvm_project_rvmrc_default="${rvm_project_rvmrc_default:-0}"
13
+
13
14
  if [[ -z "$rvm_scripts_path" ]] ; then
14
15
  if [[ -d "$HOME/scripts" ]] && [[ -f "/usr/local/rvm/scripts/rvm" ]]; then
15
16
  rvm_scripts_path="$HOME/scripts"
@@ -19,6 +20,7 @@ if [[ -z "$rvm_scripts_path" ]] ; then
19
20
  rvm_scripts_path="$rvm_path/scripts"
20
21
  fi
21
22
  fi
23
+
22
24
  rvm_archives_path="${rvm_archives_path:-"$rvm_path/archives"}"
23
25
  rvm_src_path="${rvm_src_path:-"$rvm_path/src"}"
24
26
  rvm_log_path="${rvm_log_path:-"$rvm_path/log"}"
@@ -31,3 +33,4 @@ rvm_symlink_path="${rvm_symlink_path:-/usr/local/bin}"
31
33
 
32
34
  export rvm_path rvm_scripts_path rvm_archives_path rvm_src_path rvm_log_path rvm_bin_path rvm_gem_path rvm_config_path rvm_tmp_path
33
35
 
36
+ __rvm_initialize
@@ -3,7 +3,7 @@
3
3
  if [[ -f /etc/rvmrc ]] ; then source /etc/rvmrc ; fi
4
4
  if [[ -f "$HOME/.rvmrc" ]] ; then source "$HOME/.rvmrc" ; fi
5
5
 
6
- if [[ ! -d "$rvm_path" ]] || [[ "$rvm_path" = "/" ]] ; then
6
+ if ! [[ "$rvm_path" =~ /rvm/?$ ]] ; then
7
7
  unset rvm_path
8
8
  if [[ "root" = "$(whoami)" ]] ; then
9
9
  rvm_path="/usr/local/rvm"
@@ -12,6 +12,7 @@ if [[ ! -d "$rvm_path" ]] || [[ "$rvm_path" = "/" ]] ; then
12
12
  fi
13
13
  fi
14
14
 
15
+ source scripts/utility
15
16
  source scripts/initialize
16
17
 
17
18
  #
@@ -54,7 +55,7 @@ fi
54
55
  echo -e "\n Installing bin scripts to $rvm_path/bin ..."
55
56
  # Cleanse and purge...
56
57
  rm -f $rvm_path/bin/rvm ; rm -rf $rvm_path/bin/binscripts
57
- for file in rvm-prompt rvm ; do
58
+ for file in rvm-prompt rvm rvmsudo ; do
58
59
  cp -f "$source_dir/binscripts/$file" $rvm_path/bin/
59
60
  done
60
61
  chmod +x $rvm_path/bin/*
@@ -68,7 +69,7 @@ if [[ "$rvm_loaded_flag" != "1" ]] ; then
68
69
  if [[ ! -f $rcfile ]] ; then touch $rcfile ; fi
69
70
  if [[ -s "$HOME/.profile" ]] ; then
70
71
  if ! grep -q '.profile' "$rcfile" ; then
71
- echo " Adding 'if [[ -s $HOME/.profile ]] ; then source $HOME ; fi' to $rcfile."
72
+ echo " Adding 'if [[ -s \$HOME/.profile ]] ; then source \$HOME ; fi' to $rcfile."
72
73
  echo -e "\n# rvm-install added line:\nif [[ -s \$HOME/.profile ]] ; then source \$HOME/.profile ; fi\n" >> $rcfile
73
74
  fi
74
75
  fi
@@ -81,6 +82,7 @@ fi
81
82
 
82
83
  if [[ "root" = "$(whoami)" ]] ; then
83
84
  echo -e "\n Symlinking rvm to $rvm_symlink_path/rvm ..."
85
+ mkdir -p $rvm_symlink_path
84
86
  ln -nfs $rvm_path/bin/rvm $rvm_symlink_path/rvm
85
87
  chmod +x $rvm_symlink_path/rvm
86
88
  fi
@@ -4,7 +4,7 @@
4
4
  # ruby supporting libraries:
5
5
  #
6
6
  __rvm_readline_install() {
7
- (( $rvm_make_flags_flag )) && __rvm_make_flags
7
+ if [[ ! -z "$rvm_make_flags_flag" ]] ; then __rvm_make_flags ; fi
8
8
  __rvm_pushpop $rvm_src_path
9
9
  package="readline" ; version="5.2" ; archive_format="tar.gz"
10
10
  # TODO: Figure out how to list, grab and apply the patches
@@ -35,7 +35,7 @@ __rvm_readline_install() {
35
35
  }
36
36
 
37
37
  __rvm_iconv_install() {
38
- (( $rvm_make_flags_flag )) && __rvm_make_flags
38
+ if [[ ! -z "$rvm_make_flags_flag" ]] ; then __rvm_make_flags ; fi
39
39
  __rvm_pushpop $rvm_src_path
40
40
  __rvm_pushpop $rvm_src_path
41
41
  package="libiconv" ; version=1.13.1 ; archive_format="tar.gz"
@@ -54,7 +54,7 @@ __rvm_iconv_install() {
54
54
  }
55
55
 
56
56
  __rvm_curl_install() {
57
- (( $rvm_make_flags_flag )) && __rvm_make_flags
57
+ if [[ ! -z "$rvm_make_flags_flag" ]] ; then __rvm_make_flags ; fi
58
58
  __rvm_pushpop $rvm_src_path
59
59
  package="curl" ; version=7.19.7 ; archive_format="tar.gz"
60
60
  $rvm_scripts_path/log "info" "Retrieving $package-$version.$archive_format"
@@ -72,7 +72,7 @@ __rvm_curl_install() {
72
72
  }
73
73
 
74
74
  __rvm_openssl_install() {
75
- (( $rvm_make_flags_flag )) && __rvm_make_flags
75
+ if [[ ! -z "$rvm_make_flags_flag" ]] ; then __rvm_make_flags ; fi
76
76
  if $rvm_scripts_path/match "$rvm_archflags" "x86_64" ; then
77
77
  openssl_os="os/compiler darwin64-x86_64-cc"
78
78
  else
@@ -95,7 +95,7 @@ __rvm_openssl_install() {
95
95
  }
96
96
 
97
97
  __rvm_zlib_install() {
98
- (( $rvm_make_flags_flag )) && __rvm_make_flags
98
+ if [[ ! -z "$rvm_make_flags_flag" ]] ; then __rvm_make_flags ; fi
99
99
  __rvm_pushpop $rvm_src_path
100
100
  package="zlib" ; version="1.2.3" ; archive_format="tar.gz"
101
101
  $rvm_scripts_path/log "info" "Retrieving $package-$version.$archive_format"
@@ -113,7 +113,7 @@ __rvm_zlib_install() {
113
113
  }
114
114
 
115
115
  __rvm_ncurses_install() {
116
- (( $rvm_make_flags_flag )) && __rvm_make_flags
116
+ if [[ ! -z "$rvm_make_flags_flag" ]] ; then __rvm_make_flags ; fi
117
117
  __rvm_pushpop $rvm_src_path
118
118
  package="ncurses" ; version="5.7" ; archive_format="tar.gz"
119
119
  $rvm_scripts_path/log "info" "Retrieving $package"
@@ -131,7 +131,7 @@ __rvm_ncurses_install() {
131
131
  }
132
132
 
133
133
  __rvm_install_llvm() {
134
- (( $rvm_make_flags_flag )) && __rvm_make_flags
134
+ if [[ ! -z "$rvm_make_flags_flag" ]] ; then __rvm_make_flags ; fi
135
135
  builtin cd "$rvm_src_path"
136
136
  if [[ ! -d "$rvm_src_path/llvm/.svn" ]] ; then
137
137
  rm -rf "$rvm_src_path/llvm"
@@ -1,16 +1,19 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- if [[ ! -z "$rvm_trace_flag" ]] ; then set -x ; export rvm_trace_flag ; fi
4
-
5
3
  original_ruby_version=$rvm_ruby_version
6
4
  original_ruby_string=$rvm_ruby_string
7
5
 
8
- source $rvm_scripts_path/rvm
6
+ source $rvm_scripts_path/initialize
7
+ source $rvm_scripts_path/utility
8
+ source $rvm_scripts_path/selector
9
9
 
10
10
  trap "rm -f $rvm_path/tmp/$$* > /dev/null 2>&1 ; exit" 0 1 2 3 15
11
11
 
12
+ if [[ ! -z "$rvm_trace_flag" ]] ; then set -x ; export rvm_trace_flag ; fi
13
+
12
14
  __rvm_install_source() {
13
- (( $rvm_ruby_selected_flag )) || __rvm_select $*
15
+ if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
16
+
14
17
  $rvm_scripts_path/log "info" "Installing Ruby from source to: $rvm_ruby_home"
15
18
  mkdir -p "$rvm_ruby_log_path"
16
19
  __rvm_pushpop "$rvm_src_path"
@@ -77,8 +80,7 @@ __rvm_install_source() {
77
80
  }
78
81
 
79
82
  __rvm_install_ruby() {
80
-
81
- (( $rvm_ruby_selected_flag )) || __rvm_select $*
83
+ if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
82
84
 
83
85
  if [[ ! -z "$RUBYOPT" ]] ; then ruby_options="$RUBYOPT" ; unset RUBYOPT ; fi
84
86
 
@@ -191,10 +193,12 @@ RubyWrapper
191
193
  rbx|rubinius)
192
194
  $rvm_scripts_path/log "info" "Installing pre-requisites"
193
195
  # prereqs, 1.8.6+ + rake. Yes this could all be one line... not pushing our luck.
194
- echo "$(export rvm_install_on_use_flag=1 ; rvm 1.8.7)" # This should install if missing.
196
+ original_string="$rvm_ruby_string"
197
+ export rvm_install_on_use_flag=1 ; $rvm_bin_path/rvm 1.8.7 --install # This should install if missing.
195
198
  # TODO: use 'rvm gems load' here:
196
199
  unset CFLAGS LDFLAGS ARCHFLAGS # Important.
197
- __rvm_unset_ruby_variables ; rvm_ruby_string="rbx-head" ; __rvm_select
200
+ __rvm_unset_ruby_variables ; rvm_ruby_string="$original_string" ; __rvm_select
201
+ unset original_string
198
202
 
199
203
  unset GEM_HOME GEM_PATH MY_RUBY_HOME IRBRC
200
204
  PATH=$(echo $PATH | tr ':' '\n' | awk '$0 !~ /rvm/' | paste -sd : -)
@@ -205,8 +209,8 @@ RubyWrapper
205
209
  $rvm_scripts_path/log "info" "Downloading $rvm_ruby_file, this may take a while depending on your connection..."
206
210
  $rvm_scripts_path/fetch "$rvm_url" || (result=$? && return $result)
207
211
  fi
208
- __rvm_run "extract" "tar xzf $rvm_archives_path/$rvm_ruby_file.tar.gz -C $rvm_src_path" "Extracting $rvm_ruby_file.tar.gz ..." || (result=$? && return $result)
209
- mv $rvm_src_path/rubinius-$rvm_ruby_version $rvm_ruby_src_path
212
+ __rvm_run "extract" "tar xzf $rvm_archives_path/$(basename $rvm_url) -C $rvm_src_path" "Extracting $(basename $rvm_url) ..." || (result=$? && return $result)
213
+ mv "$rvm_src_path/rubinius-$rvm_ruby_version-${rvm_ruby_patch_level/^p//}" $rvm_ruby_src_path
210
214
  else
211
215
  __rvm_db "rubinius_repo_url" "rvm_ruby_repo_url"
212
216
  #rvm_ruby_home="$rvm_path/$rvm_ruby_interpreter-$rvm_ruby_version"
@@ -224,73 +228,55 @@ RubyWrapper
224
228
  # __rvm_run "rake.distclean" "\$(rvm 1.8.7 ; rake distclean --trace)" "Running distclean."
225
229
  #fi
226
230
 
227
- # For Installer, can do this once it's ready:
228
- # RBX_PREFIX="$rvm_ruby_home" ; export RBX_PREFIX
229
- # Also see 'rakelib/configuration.rake'
230
-
231
231
  builtin cd "$rvm_ruby_src_path"
232
- # TODO: Once installer is done add the prefix:
233
- rvm_ruby_configure="./configure --prefix=$rvm_ruby_home --disable-llvm" ; message="Configuring rbx"
234
- #rvm_ruby_configure="./configure" ; message="Configuring rbx"
235
- if [[ ! -z "$rvm_jit_flag" ]] ; then
232
+ chmod +x ./configure
233
+ rvm_ruby_configure="./configure --prefix=$rvm_ruby_home" ; message="Configuring rbx"
234
+
235
+ if [[ "$rvm_jit_flag" -eq 0 ]] && [[ "rc1" != "$rvm_ruby_patch_level" ]] ; then
236
+ rvm_ruby_configure="$rvm_ruby_configure --disable-llvm" ; message="$message with LLVM disabled"
237
+ else
236
238
  rvm_ruby_configure="$rvm_ruby_configure" ; message="$message with LLVM enabled"
237
239
  fi
240
+
238
241
  __rvm_run "configure" "$rvm_ruby_configure" "$message"
239
242
 
240
243
  if [[ "$rvm_trace_flag" -eq 1 ]] ; then
241
- rvm_ruby_make="\$(rvm 1.8.7 ; rake install --trace)" ; message="Compiling rbx"
244
+ rvm_ruby_make="$rvm_bin_path/rvm 1.8.7 rake install --trace" ; message="Compiling rbx"
242
245
  else
243
- rvm_ruby_make="\$(rvm 1.8.7 ; rake install)" ; message="Compiling rbx"
246
+ rvm_ruby_make="$rvm_bin_path/rvm 1.8.7 rake install" ; message="Compiling rbx"
244
247
  fi
245
248
  __rvm_run "rake" "$rvm_ruby_make" "$message"
246
249
 
247
- # TODO: Uncomment the following once --prefix is working properly again
248
- #rvm_ruby_make_install="\$(rvm 1.8.7 ; rake install --trace)" ; message="Installing rbx"
249
- #__rvm_run "rake.install" "$rvm_ruby_make" "$message"
250
-
251
250
  binaries="ruby irb" # Trick to work in more shells :)
252
251
  for binary_name in $(echo $binaries) ; do
253
252
  ln -fs $rvm_ruby_home/bin/rbx $rvm_ruby_home/bin/$binary_name
254
253
  done ; unset binary_name binaries
255
254
 
256
- binaries="erb ri rdoc"
257
- __rvm_post_install
255
+ for binary_name in "gem" ; do
256
+ if [[ $binary_name != "gem" ]] ; then prefix="-S " ; else unset prefix; fi
258
257
 
259
- binaries="gem" # Trick to work in more shells :)
260
- for binary_name in $(echo $binaries); do
261
- if [[ $binary_name != "gem" ]] ; then prefix="-S" ; fi
262
258
  ruby_wrapper=$(cat <<RubyWrapper
263
- #!/bin/bash
259
+ #!/usr/bin/env bash
264
260
 
265
261
  GEM_HOME="$rvm_ruby_gem_home" ; export GEM_HOME
266
262
  GEM_PATH="$rvm_ruby_gem_home" ; export GEM_PATH
267
263
  MY_RUBY_HOME="$rvm_ruby_home" ; export MY_RUBY_HOME
268
264
  PATH="$rvm_ruby_home/bin:$rvm_ruby_gem_home/bin:\$PATH" ; export PATH
269
265
 
270
- exec $rvm_ruby_home/bin/rbx $prefix $binary_name "\$@"
266
+ exec $rvm_ruby_home/bin/rbx $prefix$binary_name "\$@"
271
267
  RubyWrapper
272
268
  )
273
- files="$rvm_ruby_home/bin/$binary_name $rvm_path/bin/$binary_name-$rvm_ruby_string"
274
- for file_name in $(echo $files) ; do
269
+ for file_name in "$rvm_ruby_home/bin/$binary_name" "$rvm_path/bin/$binary_name-$rvm_ruby_string" ; do
275
270
  rm -f $file_name
276
271
  echo "$ruby_wrapper" > $file_name
277
272
  if [[ -f $file_name ]] ; then chmod +x $file_name ; fi
278
- done ; unset file_name
279
- unset ruby_wrapper binary_name files prefix
280
- done
273
+ done
281
274
 
282
- __rvm_run "rake.install" "$rvm_ruby_home/bin/rbx gem install rake --no-rdoc --no-ri" "Installing Rake"
283
-
284
- binary=rake
285
- if [[ -f $rvm_ruby_gem_home/bin/$binary ]] ; then
286
- if [[ "$rvm_ruby_gem_home" != "$rvm_ruby_home" ]] ; then
287
- cp $rvm_ruby_gem_home/bin/$binary $rvm_ruby_home/bin/$binary
288
- fi
289
- chmod +x $rvm_ruby_home/bin/$binary
290
- __rvm_inject_ruby_shebang "$rvm_ruby_home/bin/$binary"
291
- __rvm_inject_gem_env "$rvm_ruby_home/bin/$binary"
292
- fi ; unset binary
275
+ unset file_name binaries ruby_wrapper binary_name files prefix
276
+ done ; unset binary_name
293
277
 
278
+ binaries="erb ri rdoc"
279
+ __rvm_post_install
294
280
  __rvm_irbrc
295
281
  __rvm_bin_script
296
282
  ;;
@@ -300,16 +286,17 @@ RubyWrapper
300
286
  echo -e "java must be installed and in your path in order to install JRuby." ; return 1
301
287
  fi
302
288
 
303
- mkdir -p "$rvm_ruby_log_path" "$rvm_ruby_src_path"
289
+ mkdir -p "$rvm_ruby_log_path" "$rvm_ruby_src_path"
304
290
  __rvm_pushpop $rvm_src_path
305
291
  __rvm_fetch_ruby || (result=$? && return $result)
306
- (( $rvm_head_flag )) || __rvm_run "extract" "tar xzf $rvm_archives_path/$rvm_ruby_package_file.tar.gz -C $rvm_src_path" "Extracting $rvm_ruby_package_file ..."
292
+
293
+ # if [[ -z "$rvm_head_flag" ]] ; then __rvm_run "extract" "tar xzf $rvm_archives_path/$rvm_ruby_package_file.tar.gz -C $rvm_src_path" "Extracting $rvm_ruby_package_file ..." ; fi
307
294
 
308
295
  builtin cd "$rvm_ruby_src_path"
309
- (( $rvm_head_flag )) && (( $rvm_ruby_version )) && ant dist
296
+ if [[ ! -z "$rvm_head_flag" ]] ; then __rvm_run "ant.dist" "ant dist" "Running 'ant dist' (this could take a few minutes) ..." ; fi
310
297
 
311
298
  mkdir -p "$rvm_ruby_home/bin/"
312
- __rvm_run "nailgun" "builtin cd "$rvm_ruby_src_path/tool/nailgun" && ./configure --prefix=$rvm_ruby_home && make $rvm_make_flags"
299
+ __rvm_run "nailgun" "builtin cd \"$rvm_ruby_src_path/tool/nailgun\" && ./configure --prefix=$rvm_ruby_home && make $rvm_make_flags" "Building Nailgun"
313
300
 
314
301
  __rvm_pushpop
315
302
 
@@ -342,13 +329,46 @@ RubyWrapper
342
329
  echo -e "mono must be installed and in your path in order to install IronRuby." ; return 1
343
330
  fi
344
331
 
345
- $rvm_scripts_path/log "info" "Retrieving IronRuby"
346
- $rvm_scripts_path/fetch "$rvm_url" || (result=$? && return $result)
332
+ if [[ "$rvm_head_flag" = 1 ]] ; then
333
+ mono_version="$(mono -V | head -n 1 | cut -d ' ' -f5)"
334
+ if [[ "$mono_version" =~ ([0-9]+)\.([0-9]+)\.?([0-9]+)? ]] ; then
335
+ if [[ ${BASH_REMATCH[1]} -lt 2 ]] || ( [[ ${BASH_REMATCH[1]} -eq 2 ]] && [[ ${BASH_REMATCH[2]} -lt 6 ]] ) ; then
336
+ echo -e "Mono 2.6 (or greater) must be installed and in your path in order to build IronRuby from the repository."
337
+ echo -e "Version detected: ${BASH_REMATCH[0]}"
338
+ return 1
339
+ fi
340
+ else
341
+ echo -e "Cannot recognize mono version."
342
+ return 1
343
+ fi
347
344
 
348
- __rvm_run "extract" "unzip $rvm_archives_path/$rvm_ruby_package_file ironruby/bin/* ironruby/lib/* -d $rvm_ruby_home" "Extracting $rvm_ruby_package_file ..."
349
- mv $rvm_ruby_home/ironruby/* $rvm_ruby_home
350
- rm -rf $rvm_ruby_home/ironruby
351
- mv $rvm_ruby_home/lib/ironruby $rvm_ruby_home/lib/IronRuby
345
+ __rvm_fetch_ruby
346
+ if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi
347
+
348
+ builtin cd $rvm_ruby_src_path
349
+
350
+ rvm_ruby_make="rake MERLIN_ROOT=\"$rvm_ruby_src_path/Merlin/Main\" compile mono=1 configuration=release --trace"
351
+ __rvm_run "rake" "$rvm_ruby_make" "Building IronRuby..."
352
+ if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi
353
+
354
+ rm -rf $rvm_ruby_home/*
355
+ mkdir -p $rvm_ruby_home/bin $rvm_ruby_home/lib $rvm_ruby_home/lib/ruby $rvm_ruby_home/lib/IronRuby
356
+
357
+ cp -r $rvm_ruby_src_path/Merlin/Main/Bin/mono_release/* $rvm_ruby_home/bin/
358
+ cp -r $rvm_ruby_src_path/Merlin/Main/Languages/Ruby/Scripts/bin/* $rvm_ruby_home/bin/
359
+ cp -r $rvm_ruby_src_path/Merlin/External.LCA_RESTRICTED/Languages/Ruby/ruby-1.8.6p*/lib/ruby/* $rvm_ruby_home/lib/ruby
360
+ cp -r $rvm_ruby_src_path/ruby_home/lib/IronRuby
361
+ else
362
+ $rvm_scripts_path/log "info" "Retrieving IronRuby"
363
+ $rvm_scripts_path/fetch "$rvm_url" || (result=$? && return $result)
364
+
365
+ __rvm_run "extract" "unzip $rvm_archives_path/$rvm_ruby_package_file ironruby/bin/* ironruby/lib/* -d $rvm_ruby_home" "Extracting $rvm_ruby_package_file ..."
366
+ if [[ $? -gt 0 ]] ; then result=$? ; return $result ; fi
367
+
368
+ mv $rvm_ruby_home/ironruby/* $rvm_ruby_home
369
+ rm -rf $rvm_ruby_home/ironruby
370
+ mv $rvm_ruby_home/lib/ironruby $rvm_ruby_home/lib/IronRuby
371
+ fi
352
372
 
353
373
  binaries="gem irb rake rdoc ri ruby"
354
374
  for binary_name in $(echo $binaries); do
@@ -383,12 +403,7 @@ RubyWrapper
383
403
  PATH=$(echo $PATH | tr ':' '\n' | awk '$0 !~ /rvm/' | paste -sd : -)
384
404
  PATH=$rvm_bin_path:$PATH ; export PATH
385
405
 
386
- unset rvm_ruby_configure
387
- rvm_ruby_src_path=$rvm_ruby_home
388
- # rvm_ruby_make="rake"
389
- # rvm_ruby_make_install="rake install"
390
406
  rvm_ruby_home="$rvm_path/$rvm_ruby_interpreter-$rvm_ruby_version"
391
- # rvm_ruby_revision="head"
392
407
 
393
408
  if [[ ! -d "$rvm_ruby_src_path" ]] || [[ ! -d "$rvm_ruby_src_path/.git" ]] ; then
394
409
  rm -rf $rvm_ruby_src_path
@@ -399,6 +414,8 @@ RubyWrapper
399
414
  __rvm_run "mput.repo" "git pull origin trunk" "Pulling from origin trunk"
400
415
  fi
401
416
 
417
+ builtin cd $rvm_ruby_src_path
418
+
402
419
  if [[ ! -s "$rvm_ruby_src_path/configure" ]] ; then
403
420
  if which autoconf &> /dev/null ; then
404
421
  __rvm_run "autoconf" "autoconf" "Running autoconf"
@@ -409,19 +426,18 @@ RubyWrapper
409
426
 
410
427
  if [[ -s ./Makefile ]] && [[ -z "$rvm_reconfigure_flag" ]] ; then
411
428
  (($rvm_debug_flag)) && $rvm_scripts_path/log "debug" "Skipping configure step, Makefile exists so configure must have already been run."
412
- elif [[ ! -z "rvm_ruby_configure" ]] ; then
413
- $rvm_ruby_configure
429
+ elif [[ ! -z "$rvm_ruby_configure" ]] ; then
430
+ __rvm_run "configure" "$rvm_ruby_configure" || (result=$? && return $result)
414
431
  elif [[ -s ./configure ]] ; then
415
- __rvm_run "configure" "./configure --prefix=$rvm_ruby_home $rvm_ruby_configure_flags $configure_parameters" "Configuring $rvm_ruby_string using $rvm_ruby_configure_flags, this may take a while depending on your cpu(s)..." || (result=$? && return $result)
416
- unset configure_parameters
432
+ __rvm_run "configure" "./configure --prefix=$rvm_ruby_home $rvm_ruby_configure_flags" "Configuring $rvm_ruby_string using $rvm_ruby_configure_flags, this may take a while depending on your cpu(s)..." || (result=$? && return $result)
417
433
  else
418
434
  $rvm_scripts_path/log "error" "Skipping configure step, 'configure' script does not exist, did autoconf not run successfully?"
419
435
  fi
420
436
 
421
- rvm_ruby_make=${rvm_ruby_make:-"/usr/bin/make"}
437
+ rvm_ruby_make=${rvm_ruby_make:-"make"}
422
438
  __rvm_run "make" "$rvm_ruby_make $rvm_make_flags" "Compiling $rvm_ruby_string, this may take a while, depending on your cpu(s)..." || (result=$? && return $result)
423
439
 
424
- rvm_ruby_make_install=${rvm_ruby_make_install:-"/usr/bin/make install"}
440
+ rvm_ruby_make_install=${rvm_ruby_make_install:-"make install"}
425
441
  __rvm_run "install" "$rvm_ruby_make_install" "Installing $rvm_ruby_string" || (result=$? && return $result)
426
442
 
427
443
  $rvm_scripts_path/log "info" "Installation of $rvm_ruby_string is complete."
@@ -453,7 +469,7 @@ RubyWrapper
453
469
  }
454
470
 
455
471
  __rvm_fetch_ruby() {
456
- (( $rvm_ruby_selected_flag )) || __rvm_select $*
472
+ if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
457
473
 
458
474
  if [[ -z "$rvm_head_flag" ]] && [[ -z "$rvm_ruby_tag" ]] && [[ -z "$rvm_ruby_revision" ]] ; then
459
475
  rvm_ruby_package_name="${rvm_ruby_package_name:-"$rvm_ruby_string"}"
@@ -521,7 +537,7 @@ __rvm_fetch_ruby() {
521
537
  }
522
538
 
523
539
  __rvm_uninstall_ruby() {
524
- (( $rvm_ruby_selected_flag )) || __rvm_select $*
540
+ if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
525
541
 
526
542
  if [[ ! -z "$rvm_ruby_string" ]] ; then
527
543
  for dir in $rvm_path ; do
@@ -542,7 +558,7 @@ __rvm_uninstall_ruby() {
542
558
  }
543
559
 
544
560
  __rvm_remove_ruby() {
545
- (( $rvm_ruby_selected_flag )) || __rvm_select $*
561
+ if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
546
562
 
547
563
  if [[ ! -z "$rvm_ruby_string" ]] ; then
548
564
  for dir in $rvm_src_path $rvm_path ; do
@@ -703,9 +719,9 @@ __rvm_manage_rubies() {
703
719
  fi
704
720
  fi
705
721
 
706
- (( $rvm_summary_flag )) && __rvm_summary
707
- (( $rvm_yaml_flag )) && __rvm_yaml
708
- (( $rvm_json_flag )) && __rvm_json
722
+ if [[ ! -z "$rvm_summary_flag" ]] ; then __rvm_summary ; fi
723
+ if [[ ! -z "$rvm_yaml_flag" ]] ; then __rvm_yaml ; fi
724
+ if [[ ! -z "$rvm_json_flag" ]] ; then __rvm_json ; fi
709
725
  }
710
726
 
711
727
  rvm_action="$1" ; rubies_string="$2"
@@ -19,14 +19,20 @@ if [[ "Linux" = "$system" ]] ; then
19
19
  echo -e "\n $ aptitude install curl sun-java6-bin sun-java6-jre sun-java6-jdk"
20
20
  echo -e "\n $item For MRI & ree (if you wish to use it) you will need:"
21
21
  echo -e "\n $ aptitude install curl bison build-essential zlib1g-dev libssl-dev libreadline5-dev libxml2-dev"
22
+ echo -e "\n $item For IronRuby (if you wish to use it) you will need:"
23
+ echo -e "\n $ aptitude install curl mono-2.0-devel"
22
24
 
23
25
  elif [[ ! -z "$rvm_emerge_binary" ]] ; then
24
26
  echo -e " $item For JRuby (if you wish to use it) you will need:"
25
27
  echo -e "\n $ emerge dev-java/sun-jdk dev-java/sun-jre-bin"
28
+ echo -e "\n $item For IronRuby (if you wish to use it) you will need:"
29
+ echo -e "\n $ emerge dev-lang/mono"
26
30
 
27
31
  elif [[ ! -z "$rvm_pacman_binary" ]] ; then
28
32
  echo -e " $item For JRuby (if you wish to use it) you will need:"
29
- echo -e " $ pacman -Sy jdk jre curl"
33
+ echo -e "\n $ pacman -Sy jdk jre curl"
34
+ echo -e "\n $item For IronRuby (if you wish to use it) you will need:"
35
+ echo -e "\n $ pacman -Sy mono"
30
36
 
31
37
  elif [[ ! -z "$rvm_yum_binary" ]] ; then
32
38
  echo -e " $item For ree (if you wish to use it) you will need:"
@@ -35,11 +41,15 @@ if [[ "Linux" = "$system" ]] ; then
35
41
  else
36
42
  echo -e " $item For JRuby (if you wish to use it) you will need:"
37
43
  echo -e "\n The SUN java runtime environment and development kit."
44
+ echo -e "\n $item For IronRuby (if you wish to use it) you will need:"
45
+ echo -e "\n The Mono Runtime and Development Platform (version 2.6 or greater is recommended)."
38
46
  fi
39
47
  elif [[ "Darwin" = "$system" ]] ; then
40
48
  echo -e " $item For Snow Leopard be sure to have XCode Tools Version 3.2.1 (1613) or later (there were bugs with the dvd release version)."
41
49
  echo -e "\n $item You should download the latest XCode tools from developer.apple.com. This will be necessary with the dvd install for Snow Leopard which has bugs."
42
50
  echo -e "\n $item If you intend on installing MacRuby you must install LLVM first."
51
+ echo -e "\n $item If you intend on installing JRuby you must install Java. The JDK is recommended."
52
+ echo -e "\n $item If you intend on installing IronRuby you must install Mono (version 2.6 or greater is recommended)."
43
53
  fi
44
54
 
45
55
  echo
@@ -23,8 +23,8 @@ if [[ "$rvm_loaded_flag" != "1" ]] || [[ "$rvm_reload_flag" = "1" ]] ; then
23
23
  fi
24
24
  if [[ -d "$rvm_path" ]] ; then
25
25
  source $rvm_path/scripts/array
26
- source $rvm_path/scripts/initialize
27
26
  source $rvm_path/scripts/utility
27
+ source $rvm_path/scripts/initialize
28
28
  source $rvm_path/scripts/selector
29
29
  source $rvm_path/scripts/cli
30
30
  #source $rvm_path/scripts/gems
@@ -3,7 +3,7 @@
3
3
  if [[ -f /etc/rvmrc ]] ; then source /etc/rvmrc ; fi
4
4
  if [[ -f "$HOME/.rvmrc" ]] ; then source "$HOME/.rvmrc" ; fi
5
5
 
6
- if [[ ! -d "$rvm_path" ]] || [[ "$rvm_path" = "/" ]] ; then
6
+ if ! [[ "$rvm_path" =~ /rvm/?$ ]] ; then
7
7
  unset rvm_path
8
8
  if [[ "root" = "$(whoami)" ]] ; then
9
9
  rvm_path="/usr/local/rvm"
@@ -12,6 +12,7 @@ if [[ ! -d "$rvm_path" ]] || [[ "$rvm_path" = "/" ]] ; then
12
12
  fi
13
13
  fi
14
14
 
15
+ source scripts/utility
15
16
  source scripts/initialize
16
17
 
17
18
  #
@@ -54,7 +55,7 @@ fi
54
55
  echo -e "\n Installing bin scripts to $rvm_path/bin ..."
55
56
  # Cleanse and purge...
56
57
  rm -f $rvm_path/bin/rvm ; rm -rf $rvm_path/bin/binscripts
57
- for file in rvm-prompt rvm ; do
58
+ for file in rvm-prompt rvm rvmsudo ; do
58
59
  cp -f "$source_dir/binscripts/$file" $rvm_path/bin/
59
60
  done
60
61
  chmod +x $rvm_path/bin/*
@@ -68,7 +69,7 @@ if [[ "$rvm_loaded_flag" != "1" ]] ; then
68
69
  if [[ ! -f $rcfile ]] ; then touch $rcfile ; fi
69
70
  if [[ -s "$HOME/.profile" ]] ; then
70
71
  if ! grep -q '.profile' "$rcfile" ; then
71
- echo " Adding 'if [[ -s $HOME/.profile ]] ; then source $HOME ; fi' to $rcfile."
72
+ echo " Adding 'if [[ -s \$HOME/.profile ]] ; then source \$HOME ; fi' to $rcfile."
72
73
  echo -e "\n# rvm-install added line:\nif [[ -s \$HOME/.profile ]] ; then source \$HOME/.profile ; fi\n" >> $rcfile
73
74
  fi
74
75
  fi
@@ -81,6 +82,7 @@ fi
81
82
 
82
83
  if [[ "root" = "$(whoami)" ]] ; then
83
84
  echo -e "\n Symlinking rvm to $rvm_symlink_path/rvm ..."
85
+ mkdir -p $rvm_symlink_path
84
86
  ln -nfs $rvm_path/bin/rvm $rvm_symlink_path/rvm
85
87
  chmod +x $rvm_symlink_path/rvm
86
88
  fi
@@ -42,16 +42,23 @@ __rvm_select() {
42
42
  rbx|rubinius)
43
43
  rvm_ruby_interpreter="rbx"
44
44
  rvm_ruby_version=${rvm_ruby_version:-$(__rvm_db "rbx_version")}
45
- rvm_ruby_patch_level=${rvm_ruby_patch_level:-$(__rvm_db "rbx_patch_level")}
46
45
  rvm_ruby_repo_url=${rvm_rbx_repo_url:-$(__rvm_db "rubinius_repo_url")}
47
46
  __rvm_db "rbx_url" "rvm_url"
48
-
49
- rvm_ruby_file="rubinius-$rvm_ruby_version-$rvm_ruby_patch_level"
47
+ if [[ -z "$rvm_head_flag" ]] ; then
48
+ rvm_ruby_patch_level=${rvm_ruby_patch_level:-$(__rvm_db "rbx_patch_level")}
49
+ rvm_ruby_string="$rvm_ruby_interpreter-$rvm_ruby_version-p$rvm_ruby_patch_level"
50
+ rvm_ruby_string="${rvm_ruby_string/-prc/-rc}"
51
+ rvm_ruby_string="$(echo $rvm_ruby_string | sed 's#-pp#-p#')"
52
+ rvm_ruby_file="rubinius-$rvm_ruby_version-$rvm_ruby_patch_level"
53
+ else
54
+ unset rvm_ruby_patch_level
55
+ rvm_ruby_string="$rvm_ruby_interpreter-$rvm_ruby_version-head"
56
+ fi
50
57
  ;;
51
58
 
52
59
  jruby)
53
60
  unset rvm_ruby_patch_level
54
- if [[ "$rvm_head_flag" -eq 1 ]] ; then
61
+ if [[ ! -z "$rvm_head_flag" ]] ; then
55
62
  rvm_ruby_version="head"
56
63
  rvm_ruby_string="jruby-head"
57
64
  rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "jruby_repo_url")}"
@@ -69,11 +76,19 @@ __rvm_select() {
69
76
 
70
77
  ironruby)
71
78
  unset rvm_ruby_patch_level
72
- rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "ironruby_version")"}
73
- rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
74
- rvm_ruby_package_file="${rvm_ruby_string}.zip"
75
- rvm_ruby_package_name="${rvm_ruby_string}"
76
- rvm_url="$(__rvm_db "ironruby_url")${rvm_ruby_package_file}"
79
+ if [[ "$rvm_head_flag" -eq 1 ]] ; then
80
+ rvm_ruby_version="head"
81
+ rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
82
+ rvm_ruby_package_name="${rvm_ruby_string}"
83
+ rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "ironruby_repo_url")}"
84
+ rvm_url="${rvm_ruby_repo_url:-$(__rvm_db "ironruby_repo_url")}"
85
+ else
86
+ rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "ironruby_version")"}
87
+ rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
88
+ rvm_ruby_package_file="${rvm_ruby_string}.zip"
89
+ rvm_ruby_package_name="${rvm_ruby_string}"
90
+ rvm_url="$(__rvm_db "ironruby_url")${rvm_ruby_package_file}"
91
+ fi
77
92
  ;;
78
93
 
79
94
  ree)
@@ -154,10 +169,10 @@ __rvm_select() {
154
169
  rvm_ruby_src_path="$rvm_src_path/$rvm_ruby_string"
155
170
  rvm_ruby_binary="$rvm_ruby_home/bin/ruby"
156
171
  rvm_ruby_irbrc="$rvm_ruby_home/.irbrc"
157
- if [[ -z "$rvm_gem_set_name" ]] ; then
158
- rvm_ruby_gem_home="${rvm_gem_path}/${rvm_ruby_interpreter}/${rvm_ruby_version}"
159
- else
160
- rvm_ruby_gem_home="${rvm_gem_path}/${rvm_ruby_interpreter}/${rvm_ruby_version}%${rvm_gem_set_name}"
172
+ rvm_ruby_gem_home="${rvm_gem_path}/${rvm_ruby_string}"
173
+
174
+ if [[ ! -z "$rvm_gem_set_name" ]] ; then
175
+ rvm_ruby_gem_home="${rvm_ruby_gem_home}%${rvm_gem_set_name}"
161
176
  fi
162
177
 
163
178
  rvm_ruby_selected_flag=1
@@ -231,7 +246,7 @@ __rvm_use() {
231
246
  if [[ ! -d $MY_RUBY_HOME ]] ; then
232
247
  $rvm_scripts_path/log "warn" "$rvm_ruby_interpreter $rvm_ruby_string is not installed."
233
248
  if [[ ! -z "$rvm_install_on_use_flag" ]] ; then
234
- __rvm_install_ruby $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level
249
+ $rvm_scripts_path/manage "install" "$rvm_ruby_string"
235
250
  else
236
251
  $rvm_scripts_path/log "info" "To install do: 'rvm install $rvm_ruby_string'"
237
252
  return 1
@@ -277,9 +292,8 @@ __rvm_use() {
277
292
  if [[ ! -z "$rvm_default_flag" ]] ; then $rvm_scripts_path/symlink "default" ; fi
278
293
  fi
279
294
  fi
280
-
281
- unset rvm_default_flag
282
295
  fi
296
+ unset rvm_default_flag
283
297
 
284
298
  if [[ ! -z "$rvm_symlink_name" ]] ; then $rvm_scripts_path/symlink "$rvm_symlink_name" ; unset rvm_symlink_name ; fi
285
299
  if [[ ! -z "$rvm_editor_flag" ]] ; then $rvm_scripts_path/symlink "editor" ; unset rvm_editor_flag ; fi
@@ -329,6 +343,8 @@ __rvm_ruby_string() {
329
343
  break
330
344
  elif $rvm_scripts_path/match "$string" "^preview" ; then
331
345
  rvm_ruby_patch_level="$string"
346
+ elif $rvm_scripts_path/match "$string" "^rc[0-9]" ; then
347
+ rvm_ruby_patch_level="$string"
332
348
  elif $rvm_scripts_path/match "$string" "^[0-9]\.[0-9]" ; then
333
349
  if [[ "1.8" = "$string" ]] ; then string="1.8.6" ; fi
334
350
  if [[ "1.9" = "$string" ]] ; then string="1.9.1" ; fi
@@ -360,7 +376,7 @@ __rvm_ruby_string() {
360
376
  elif $rvm_scripts_path/match "$string" "^u[a-z0-9]" ; then
361
377
  unset rvm_ruby_patch_level rvm_ruby_revision rvm_ruby_tag rvm_ruby_patch
362
378
  rvm_ruby_user_tag="$string"
363
- elif [[ "$string" = "ruby" ]] || [[ "$string" = "jruby" ]] || [[ "$string" = "ree" ]] || [[ "$string" = "macruby" ]] || [[ "$string" = "rbx" ]] || [[ "$string" = "rubinius" ]] || [[ "$string" = "mput" ]] || [[ "$string" = "shyouhei" ]] || [[ "$string" = "ironruby" ]] ; then
379
+ elif $rvm_scripts_path/match "ruby rbx jruby macruby ree rubinius mput shyouhei ironruby" "$string" ; then
364
380
  rvm_ruby_interpreter="$string"
365
381
  else
366
382
  $rvm_scripts_path/log "error" "Unknown ruby string component: '$string'"
@@ -411,6 +427,7 @@ __rvm_ruby_string() {
411
427
  if [[ ! -z "$rvm_ruby_patch_level" ]] ; then
412
428
  rvm_ruby_patch_level="$(echo $rvm_ruby_patch_level | sed 's#^pp#p#')"
413
429
  rvm_ruby_string="${rvm_ruby_string}-${rvm_ruby_patch_level}"
430
+ rvm_ruby_string="$(echo $rvm_ruby_string | sed 's#-pp#-p#')"
414
431
  fi
415
432
  fi
416
433
  }
@@ -3,7 +3,7 @@
3
3
  if [[ -f /etc/rvmrc ]] ; then source /etc/rvmrc ; fi
4
4
  if [[ -f "$HOME/.rvmrc" ]] ; then source "$HOME/.rvmrc" ; fi
5
5
 
6
- if [[ ! -d "$rvm_path" ]] || [[ "$rvm_path" = "/" ]] ; then
6
+ if ! [[ "$rvm_path" =~ /rvm/?$ ]] ; then
7
7
  unset rvm_path
8
8
  if [[ "root" = "$(whoami)" ]] ; then
9
9
  rvm_path="/usr/local/rvm"
@@ -12,6 +12,7 @@ if [[ ! -d "$rvm_path" ]] || [[ "$rvm_path" = "/" ]] ; then
12
12
  fi
13
13
  fi
14
14
 
15
+ source scripts/utility
15
16
  source scripts/initialize
16
17
 
17
18
  #
@@ -54,7 +55,7 @@ fi
54
55
  echo -e "\n Installing bin scripts to $rvm_path/bin ..."
55
56
  # Cleanse and purge...
56
57
  rm -f $rvm_path/bin/rvm ; rm -rf $rvm_path/bin/binscripts
57
- for file in rvm-prompt rvm ; do
58
+ for file in rvm-prompt rvm rvmsudo ; do
58
59
  cp -f "$source_dir/binscripts/$file" $rvm_path/bin/
59
60
  done
60
61
  chmod +x $rvm_path/bin/*
@@ -68,7 +69,7 @@ if [[ "$rvm_loaded_flag" != "1" ]] ; then
68
69
  if [[ ! -f $rcfile ]] ; then touch $rcfile ; fi
69
70
  if [[ -s "$HOME/.profile" ]] ; then
70
71
  if ! grep -q '.profile' "$rcfile" ; then
71
- echo " Adding 'if [[ -s $HOME/.profile ]] ; then source $HOME ; fi' to $rcfile."
72
+ echo " Adding 'if [[ -s \$HOME/.profile ]] ; then source \$HOME ; fi' to $rcfile."
72
73
  echo -e "\n# rvm-install added line:\nif [[ -s \$HOME/.profile ]] ; then source \$HOME/.profile ; fi\n" >> $rcfile
73
74
  fi
74
75
  fi
@@ -81,6 +82,7 @@ fi
81
82
 
82
83
  if [[ "root" = "$(whoami)" ]] ; then
83
84
  echo -e "\n Symlinking rvm to $rvm_symlink_path/rvm ..."
85
+ mkdir -p $rvm_symlink_path
84
86
  ln -nfs $rvm_path/bin/rvm $rvm_symlink_path/rvm
85
87
  chmod +x $rvm_symlink_path/rvm
86
88
  fi
@@ -157,7 +157,7 @@ __rvm_bin_scripts() {
157
157
  }
158
158
 
159
159
  __rvm_bin_script() {
160
- if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select $* ; fi
160
+ if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
161
161
  ruby_wrapper=$(cat <<RubyWrapper
162
162
  #!/bin/bash
163
163
 
@@ -260,7 +260,7 @@ __rvm_implode() {
260
260
  }
261
261
 
262
262
  __rvm_source_dir() {
263
- if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select $* ; fi
263
+ if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
264
264
  if [[ -z "$rvm_ruby_src_path" ]] ; then
265
265
  $rvm_scripts_path/log "fail" "No source directory exists for the default implementation."
266
266
  else
@@ -281,7 +281,7 @@ __rvm_list() {
281
281
  echo -e "rbx(-head) # rubinius head, the default rbx \nrbx(-head) --jit (rubinius head with LLVM enabled)"
282
282
  echo -e "ree-1.8.6\nree(-1.8.7) # the default\nree-1.8.6-head\nree-1.8.7-head"
283
283
  echo -e "mput(-head) # shyouhei head, the default mput"
284
- echo -e "ironruby-0.9.3 # (1.0 RC1)"
284
+ echo -e "ironruby-0.9.3 # (1.0 RC1)\nironruby-head"
285
285
  if [[ "Darwin" = "$(uname)" ]] ; then
286
286
  echo -e "macruby(-nightly) # the default macruby\nmacruby-head # Build from the macruby git repository"
287
287
  fi
@@ -681,10 +681,10 @@ __rvm_gems_select() {
681
681
  fi
682
682
 
683
683
  if [[ ! -z "$rvm_gem_set_name" ]] && ! $rvm_scripts_path/match "$rvm_gem_set_name" "^[0-9]\.[0-9]" ; then
684
- rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
684
+ rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_string%$rvm_gem_set_name"
685
685
  else
686
686
  if [[ ! -z "$rvm_ruby_interpreter" ]] && [[ ! -z "$rvm_ruby_version" ]] && [[ "$rvm_ruby_interpreter" != "system" ]] ; then
687
- rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version"
687
+ rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_string"
688
688
  elif [[ -z "$GEM_HOME" ]] && [[ ! -z "$(which gem 2>/dev/null)" ]] ; then
689
689
  rvm_ruby_gem_home=$(gem env gemdir)
690
690
  elif [[ ! -z "$GEM_HOME" ]] ; then
@@ -695,12 +695,12 @@ __rvm_gems_select() {
695
695
  fi
696
696
  if [[ -z "$rvm_gem_set_name" ]] ; then unset rvm_gem_set_name ; fi
697
697
  else
698
- rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version%$rvm_gem_set_name"
698
+ rvm_ruby_gem_home="$rvm_gem_path/$rvm_ruby_string%$rvm_gem_set_name"
699
699
  fi
700
700
  }
701
701
 
702
702
  __rvm_gems_use() {
703
- if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select $* ; fi
703
+ if [[ -z "$rvm_ruby_selected_flag" ]] ; then __rvm_select ; fi
704
704
 
705
705
  if [[ ! -z "$rvm_ruby_gem_home" ]] ; then
706
706
  mkdir -p "$rvm_ruby_gem_home"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rvm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.97
4
+ version: 0.0.98
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-12-17 00:00:00 -05:00
12
+ date: 2009-12-21 00:00:00 -05:00
13
13
  default_executable: rvm-install
14
14
  dependencies: []
15
15
 
@@ -26,6 +26,7 @@ files:
26
26
  - README
27
27
  - binscripts/rvm
28
28
  - binscripts/rvm-prompt
29
+ - binscripts/rvmsudo
29
30
  - config/db
30
31
  - config/md5
31
32
  - examples/rvmrc