rvm 0.1.41 → 0.1.42
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/binscripts/rvm +1 -1
- data/binscripts/rvm-shell +32 -0
- data/binscripts/rvmsudo +1 -6
- data/config/db +2 -2
- data/config/known +2 -2
- data/config/md5 +6 -5
- data/contrib/install-system-wide +81 -0
- data/install +23 -24
- data/lib/VERSION.yml +1 -1
- data/lib/rvm.rb +156 -1
- data/lib/rvm/capistrano.rb +45 -0
- data/lib/rvm/environment.rb +62 -0
- data/lib/rvm/environment/alias.rb +69 -0
- data/lib/rvm/environment/cleanup.rb +54 -0
- data/lib/rvm/environment/configuration.rb +60 -0
- data/lib/rvm/environment/env.rb +52 -0
- data/lib/rvm/environment/gemset.rb +222 -0
- data/lib/rvm/environment/info.rb +13 -0
- data/lib/rvm/environment/list.rb +124 -0
- data/lib/rvm/environment/rubies.rb +50 -0
- data/lib/rvm/environment/sets.rb +123 -0
- data/lib/rvm/environment/tools.rb +41 -0
- data/lib/rvm/environment/utility.rb +167 -0
- data/lib/rvm/environment/wrapper.rb +23 -0
- data/lib/rvm/errors.rb +28 -0
- data/lib/rvm/shell.rb +21 -10
- data/lib/rvm/shell/abstract_wrapper.rb +145 -0
- data/lib/rvm/shell/result.rb +42 -0
- data/lib/rvm/shell/shell_wrapper.sh +10 -0
- data/lib/rvm/shell/single_shot_wrapper.rb +56 -0
- data/lib/rvm/shell/utility.rb +37 -0
- data/lib/rvm/version.rb +12 -8
- data/rvm.gemspec +27 -4
- data/scripts/cd +17 -32
- data/scripts/cli +46 -16
- data/scripts/completion +1 -1
- data/scripts/disk-usage +52 -0
- data/scripts/fetch +8 -2
- data/scripts/gemsets +15 -4
- data/scripts/initialize +3 -3
- data/scripts/install +23 -24
- data/scripts/list +16 -8
- data/scripts/log +4 -1
- data/scripts/man +0 -0
- data/scripts/manage +51 -34
- data/scripts/md5 +4 -5
- data/scripts/package +28 -6
- data/scripts/rubygems +2 -2
- data/scripts/rvm +2 -2
- data/scripts/rvm-install +23 -24
- data/scripts/selector +2 -2
- data/scripts/tools +34 -0
- data/scripts/update +23 -24
- data/scripts/utility +54 -12
- data/scripts/wrapper +21 -18
- metadata +29 -6
- data/lib/rvm/open4.rb +0 -395
- data/lib/rvm/rvm.rb +0 -14
data/scripts/rvm-install
CHANGED
@@ -44,19 +44,19 @@ if echo "$*" | grep -q 'trace' ; then echo "$*" ; env | grep '^rvm_' ; set -x ;
|
|
44
44
|
while [[ $# -gt 0 ]] ; do
|
45
45
|
token="$1" ; shift
|
46
46
|
case "$token" in
|
47
|
-
--auto) rvm_auto_flag=1
|
47
|
+
--auto) rvm_auto_flag=1 ;;
|
48
48
|
--prefix) rvm_prefix="$1" ; shift ;;
|
49
49
|
--version) rvm_path="$(pwd)" ; __rvm_version ; unset rvm_path ; exit ;;
|
50
|
-
--help|*) usage
|
50
|
+
--help|*) usage ;;
|
51
51
|
esac
|
52
52
|
done
|
53
53
|
|
54
54
|
if [[ -z "$rvm_prefix" ]] ; then
|
55
55
|
__rvm_load_rvmrc
|
56
56
|
if [[ "root" = "$(whoami)" ]] ; then
|
57
|
-
rvm_prefix="/usr/local/"
|
57
|
+
rvm_prefix="${rvm_prefix:-"/usr/local/"}"
|
58
58
|
else
|
59
|
-
rvm_prefix="$HOME/."
|
59
|
+
rvm_prefix="${rvm_prefix:-"$HOME/."}"
|
60
60
|
fi
|
61
61
|
fi
|
62
62
|
|
@@ -87,7 +87,7 @@ rvm_archives_path="${rvm_archives_path:-"$rvm_path/archives"}"
|
|
87
87
|
rvm_src_path="${rvm_src_path:-"$rvm_path/src"}"
|
88
88
|
rvm_log_path="${rvm_log_path:-"$rvm_path/log"}"
|
89
89
|
|
90
|
-
if [[ "root" = "$(whoami)" ]] ; then
|
90
|
+
if [[ -z "$rvm_prefix" ]] && [[ "root" = "$(whoami)" ]] ; then
|
91
91
|
rvm_bin_path="${rvm_bin_path:-"/usr/local/bin"}"
|
92
92
|
else
|
93
93
|
rvm_bin_path="${rvm_bin_path:-"$rvm_path/bin"}"
|
@@ -114,7 +114,7 @@ fi
|
|
114
114
|
|
115
115
|
spinner
|
116
116
|
|
117
|
-
mkdir -p $rvm_archives_path $rvm_src_path $rvm_log_path $rvm_bin_path $rvm_gems_path $rvm_rubies_path $rvm_config_path $rvm_hooks_path $rvm_tmp_path
|
117
|
+
mkdir -p $rvm_archives_path $rvm_src_path $rvm_log_path $rvm_bin_path $rvm_gems_path $rvm_rubies_path $rvm_config_path $rvm_hooks_path $rvm_patches_path $rvm_tmp_path
|
118
118
|
|
119
119
|
for file in README LICENCE ; do
|
120
120
|
spinner
|
@@ -139,7 +139,7 @@ if [[ ! -s "$rvm_config_path/user" ]] ; then
|
|
139
139
|
fi
|
140
140
|
|
141
141
|
scripts=("monitor" "match" "log" "install" "color" "db" "fetch" "log" "set" "package")
|
142
|
-
for script_name in $scripts ; do
|
142
|
+
for script_name in "${scripts[@]}" ; do
|
143
143
|
spinner
|
144
144
|
chmod +x $rvm_scripts_path/$script_name
|
145
145
|
done
|
@@ -148,7 +148,7 @@ done
|
|
148
148
|
# Bin Scripts
|
149
149
|
#
|
150
150
|
# Cleanse and purge...
|
151
|
-
for file in rvm-prompt rvm rvmsudo ; do
|
151
|
+
for file in rvm-prompt rvm rvmsudo rvm-shell ; do
|
152
152
|
spinner && perl -e 'sleep 0.2'
|
153
153
|
rm -f "$rvm_bin_path/$file"
|
154
154
|
cp -f "$source_path/binscripts/$file" $rvm_bin_path/
|
@@ -160,7 +160,7 @@ chmod +x $rvm_bin_path/*
|
|
160
160
|
# RC Files
|
161
161
|
#
|
162
162
|
spinner
|
163
|
-
if [[
|
163
|
+
if [[ -n "$rvm_auto_flag" ]] ; then
|
164
164
|
printf "Checking rc files... ($rvm_rc_files)"
|
165
165
|
if [[ "$rvm_loaded_flag" != "1" ]] ; then
|
166
166
|
for rcfile in $(echo $rvm_rc_files) ; do
|
@@ -274,16 +274,16 @@ fi
|
|
274
274
|
# End of gemset migration.
|
275
275
|
#
|
276
276
|
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
chmod +x $rvm_bin_path
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
277
|
+
printf "\n Correct permissions for base binaries in $rvm_bin_path..."
|
278
|
+
mkdir -p $rvm_bin_path
|
279
|
+
for file in rvm rvmsudo rvm-shell ; do
|
280
|
+
[[ -s "$rvm_bin_path/$file" ]] && chmod +x "$rvm_bin_path/$file"
|
281
|
+
done; unset file
|
282
|
+
printf "\n Copying manpages into place."
|
283
|
+
for man_file in $(\ls "$install_source_path/man"); do
|
284
|
+
rm -rf "$rvm_man_path/$man_file"
|
285
|
+
cp -R "$install_source_path/man/$man_file" "$rvm_man_path/"
|
286
|
+
done
|
287
287
|
|
288
288
|
if [[ "$upgrade_flag" -eq 0 ]] ; then
|
289
289
|
./scripts/notes
|
@@ -303,20 +303,19 @@ if [[ "$upgrade_flag" -eq 1 ]] ; then
|
|
303
303
|
printf "\n$(tput setaf 6)Upgrade Notes\n"
|
304
304
|
printf "\n * 'rvm notes' tells you OS dependency packages for installing rubies."
|
305
305
|
printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
|
306
|
-
printf "\n * 1.8.7 default patchlevel is p174, override ~/.rvm/config/db in ~/.rvm/config/user"
|
307
306
|
printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
|
308
307
|
printf "\n$(tput sgr0)\n"
|
309
308
|
check_rubyopt_conditions
|
310
309
|
printf "\nUpgrade of RVM in $rvm_path/ is complete.\n\n"
|
311
310
|
else
|
312
|
-
if [[ "root" != "$(whoami)" ]] ; then
|
311
|
+
if [[ -z "$rvm_prefix" ]] && [[ "root" != "$(whoami)" ]] ; then
|
313
312
|
printf "\n$(tput setaf 1)You must now finish the install manually:$(tput sgr0)"
|
314
313
|
printf "\n1) Place the folowing line at the end of your shell's loading files(.bashrc or .bash_profile for bash and .zshrc for zsh), after all path/variable settings:"
|
315
314
|
printf "\n [[ -s \$HOME/.rvm/scripts/rvm ]] && source \$HOME/.rvm/scripts/rvm"
|
316
315
|
printf "\n Please note that this must only occur once - so, you only need to add it the first time you install rvm."
|
317
316
|
printf "\n2) Ensure that there is no 'return' from inside the .bashrc file. (otherwise rvm will be prevented from working properly)."
|
318
|
-
printf "\n This means that if you see '[ -z "
|
319
|
-
printf "\n if [[
|
317
|
+
printf "\n This means that if you see '[ -z "\$PS1" ] && return' then you must change this line to:"
|
318
|
+
printf "\n if [[ -n "\$PS1" ]] ; then"
|
320
319
|
printf "\n ... original content that was below the && return line ..."
|
321
320
|
printf "\n fi # <= be sure to close the if."
|
322
321
|
printf "\n #EOF .bashrc"
|
@@ -325,7 +324,7 @@ else
|
|
325
324
|
printf "\n placing all non-interactive items in the .bashrc, including the 'source' line above"
|
326
325
|
printf "\n3) Then $(tput setaf 1)CLOSE THIS SHELL$(tput sgr0) and open a new one in order to use rvm.\n"
|
327
326
|
fi
|
328
|
-
if [[ -s $HOME/.bashrc ]] && grep '&& return' $HOME/.bashrc ; then
|
327
|
+
if [[ -s $HOME/.bashrc ]] && grep -q '&& return' $HOME/.bashrc ; then
|
329
328
|
printf "\n\nWARNING: you have a 'return' statement in your .bashrc, likely this will cause untold havoc."
|
330
329
|
printf "\n This means that if you see '[ -z "\$PS1" ] && return' then you must change this line to:"
|
331
330
|
printf "\n if [[ -n "\$PS1" ]] ; then"
|
data/scripts/selector
CHANGED
@@ -303,8 +303,8 @@ __rvm_use() {
|
|
303
303
|
|
304
304
|
if [[ ! -z "$rvm_default_flag" ]] && [[ "default" != "$rvm_ruby_interpreter" ]] ; then
|
305
305
|
if [[ "root" = "$(whoami)" ]] ; then
|
306
|
-
#
|
307
|
-
$rvm_scripts_path/wrapper $rvm_ruby_string
|
306
|
+
# Sets up the default wrappers.
|
307
|
+
$rvm_scripts_path/wrapper "$rvm_ruby_string"
|
308
308
|
fi
|
309
309
|
if [[ "system" = "$rvm_ruby_interpreter" ]] ; then
|
310
310
|
$rvm_scripts_path/alias delete default &> /dev/null
|
data/scripts/tools
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
source "$rvm_scripts_path/base"
|
2
|
+
|
3
|
+
usage() {
|
4
|
+
echo "Usage: rvm tools {identifier,path-identifier}" 1>&2
|
5
|
+
exit 1
|
6
|
+
}
|
7
|
+
|
8
|
+
# Return the identifier that's current in use.
|
9
|
+
tools_identifier() {
|
10
|
+
__rvm_environment_identifier
|
11
|
+
}
|
12
|
+
|
13
|
+
tools_path_identifier() {
|
14
|
+
if [[ -z "$1" || ! -d "$1" ]]; then
|
15
|
+
echo "Usage: rvm tools path-identifier 'path-to-heck'"
|
16
|
+
return 1
|
17
|
+
fi
|
18
|
+
# Change to the directory. Do in subshell to keep the env correct.
|
19
|
+
(source $rvm_scripts_path/rvm
|
20
|
+
cd "$1" >/dev/null 2>&1
|
21
|
+
__rvm_environment_identifier)
|
22
|
+
}
|
23
|
+
|
24
|
+
[[ -z "$1" ]] && usage
|
25
|
+
|
26
|
+
action="$1"; shift
|
27
|
+
|
28
|
+
case "$action" in
|
29
|
+
identifier) tools_identifier ;;
|
30
|
+
path-identifier) tools_path_identifier "$@" ;;
|
31
|
+
*) usage ;;
|
32
|
+
esac
|
33
|
+
|
34
|
+
exit $?
|
data/scripts/update
CHANGED
@@ -44,19 +44,19 @@ if echo "$*" | grep -q 'trace' ; then echo "$*" ; env | grep '^rvm_' ; set -x ;
|
|
44
44
|
while [[ $# -gt 0 ]] ; do
|
45
45
|
token="$1" ; shift
|
46
46
|
case "$token" in
|
47
|
-
--auto) rvm_auto_flag=1
|
47
|
+
--auto) rvm_auto_flag=1 ;;
|
48
48
|
--prefix) rvm_prefix="$1" ; shift ;;
|
49
49
|
--version) rvm_path="$(pwd)" ; __rvm_version ; unset rvm_path ; exit ;;
|
50
|
-
--help|*) usage
|
50
|
+
--help|*) usage ;;
|
51
51
|
esac
|
52
52
|
done
|
53
53
|
|
54
54
|
if [[ -z "$rvm_prefix" ]] ; then
|
55
55
|
__rvm_load_rvmrc
|
56
56
|
if [[ "root" = "$(whoami)" ]] ; then
|
57
|
-
rvm_prefix="/usr/local/"
|
57
|
+
rvm_prefix="${rvm_prefix:-"/usr/local/"}"
|
58
58
|
else
|
59
|
-
rvm_prefix="$HOME/."
|
59
|
+
rvm_prefix="${rvm_prefix:-"$HOME/."}"
|
60
60
|
fi
|
61
61
|
fi
|
62
62
|
|
@@ -87,7 +87,7 @@ rvm_archives_path="${rvm_archives_path:-"$rvm_path/archives"}"
|
|
87
87
|
rvm_src_path="${rvm_src_path:-"$rvm_path/src"}"
|
88
88
|
rvm_log_path="${rvm_log_path:-"$rvm_path/log"}"
|
89
89
|
|
90
|
-
if [[ "root" = "$(whoami)" ]] ; then
|
90
|
+
if [[ -z "$rvm_prefix" ]] && [[ "root" = "$(whoami)" ]] ; then
|
91
91
|
rvm_bin_path="${rvm_bin_path:-"/usr/local/bin"}"
|
92
92
|
else
|
93
93
|
rvm_bin_path="${rvm_bin_path:-"$rvm_path/bin"}"
|
@@ -114,7 +114,7 @@ fi
|
|
114
114
|
|
115
115
|
spinner
|
116
116
|
|
117
|
-
mkdir -p $rvm_archives_path $rvm_src_path $rvm_log_path $rvm_bin_path $rvm_gems_path $rvm_rubies_path $rvm_config_path $rvm_hooks_path $rvm_tmp_path
|
117
|
+
mkdir -p $rvm_archives_path $rvm_src_path $rvm_log_path $rvm_bin_path $rvm_gems_path $rvm_rubies_path $rvm_config_path $rvm_hooks_path $rvm_patches_path $rvm_tmp_path
|
118
118
|
|
119
119
|
for file in README LICENCE ; do
|
120
120
|
spinner
|
@@ -139,7 +139,7 @@ if [[ ! -s "$rvm_config_path/user" ]] ; then
|
|
139
139
|
fi
|
140
140
|
|
141
141
|
scripts=("monitor" "match" "log" "install" "color" "db" "fetch" "log" "set" "package")
|
142
|
-
for script_name in $scripts ; do
|
142
|
+
for script_name in "${scripts[@]}" ; do
|
143
143
|
spinner
|
144
144
|
chmod +x $rvm_scripts_path/$script_name
|
145
145
|
done
|
@@ -148,7 +148,7 @@ done
|
|
148
148
|
# Bin Scripts
|
149
149
|
#
|
150
150
|
# Cleanse and purge...
|
151
|
-
for file in rvm-prompt rvm rvmsudo ; do
|
151
|
+
for file in rvm-prompt rvm rvmsudo rvm-shell ; do
|
152
152
|
spinner && perl -e 'sleep 0.2'
|
153
153
|
rm -f "$rvm_bin_path/$file"
|
154
154
|
cp -f "$source_path/binscripts/$file" $rvm_bin_path/
|
@@ -160,7 +160,7 @@ chmod +x $rvm_bin_path/*
|
|
160
160
|
# RC Files
|
161
161
|
#
|
162
162
|
spinner
|
163
|
-
if [[
|
163
|
+
if [[ -n "$rvm_auto_flag" ]] ; then
|
164
164
|
printf "Checking rc files... ($rvm_rc_files)"
|
165
165
|
if [[ "$rvm_loaded_flag" != "1" ]] ; then
|
166
166
|
for rcfile in $(echo $rvm_rc_files) ; do
|
@@ -274,16 +274,16 @@ fi
|
|
274
274
|
# End of gemset migration.
|
275
275
|
#
|
276
276
|
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
chmod +x $rvm_bin_path
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
277
|
+
printf "\n Correct permissions for base binaries in $rvm_bin_path..."
|
278
|
+
mkdir -p $rvm_bin_path
|
279
|
+
for file in rvm rvmsudo rvm-shell ; do
|
280
|
+
[[ -s "$rvm_bin_path/$file" ]] && chmod +x "$rvm_bin_path/$file"
|
281
|
+
done; unset file
|
282
|
+
printf "\n Copying manpages into place."
|
283
|
+
for man_file in $(\ls "$install_source_path/man"); do
|
284
|
+
rm -rf "$rvm_man_path/$man_file"
|
285
|
+
cp -R "$install_source_path/man/$man_file" "$rvm_man_path/"
|
286
|
+
done
|
287
287
|
|
288
288
|
if [[ "$upgrade_flag" -eq 0 ]] ; then
|
289
289
|
./scripts/notes
|
@@ -303,20 +303,19 @@ if [[ "$upgrade_flag" -eq 1 ]] ; then
|
|
303
303
|
printf "\n$(tput setaf 6)Upgrade Notes\n"
|
304
304
|
printf "\n * 'rvm notes' tells you OS dependency packages for installing rubies."
|
305
305
|
printf "\n * If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' "
|
306
|
-
printf "\n * 1.8.7 default patchlevel is p174, override ~/.rvm/config/db in ~/.rvm/config/user"
|
307
306
|
printf "\n * Gemset separator is '@' and will remain unless any rubies error using it."
|
308
307
|
printf "\n$(tput sgr0)\n"
|
309
308
|
check_rubyopt_conditions
|
310
309
|
printf "\nUpgrade of RVM in $rvm_path/ is complete.\n\n"
|
311
310
|
else
|
312
|
-
if [[ "root" != "$(whoami)" ]] ; then
|
311
|
+
if [[ -z "$rvm_prefix" ]] && [[ "root" != "$(whoami)" ]] ; then
|
313
312
|
printf "\n$(tput setaf 1)You must now finish the install manually:$(tput sgr0)"
|
314
313
|
printf "\n1) Place the folowing line at the end of your shell's loading files(.bashrc or .bash_profile for bash and .zshrc for zsh), after all path/variable settings:"
|
315
314
|
printf "\n [[ -s \$HOME/.rvm/scripts/rvm ]] && source \$HOME/.rvm/scripts/rvm"
|
316
315
|
printf "\n Please note that this must only occur once - so, you only need to add it the first time you install rvm."
|
317
316
|
printf "\n2) Ensure that there is no 'return' from inside the .bashrc file. (otherwise rvm will be prevented from working properly)."
|
318
|
-
printf "\n This means that if you see '[ -z "
|
319
|
-
printf "\n if [[
|
317
|
+
printf "\n This means that if you see '[ -z "\$PS1" ] && return' then you must change this line to:"
|
318
|
+
printf "\n if [[ -n "\$PS1" ]] ; then"
|
320
319
|
printf "\n ... original content that was below the && return line ..."
|
321
320
|
printf "\n fi # <= be sure to close the if."
|
322
321
|
printf "\n #EOF .bashrc"
|
@@ -325,7 +324,7 @@ else
|
|
325
324
|
printf "\n placing all non-interactive items in the .bashrc, including the 'source' line above"
|
326
325
|
printf "\n3) Then $(tput setaf 1)CLOSE THIS SHELL$(tput sgr0) and open a new one in order to use rvm.\n"
|
327
326
|
fi
|
328
|
-
if [[ -s $HOME/.bashrc ]] && grep '&& return' $HOME/.bashrc ; then
|
327
|
+
if [[ -s $HOME/.bashrc ]] && grep -q '&& return' $HOME/.bashrc ; then
|
329
328
|
printf "\n\nWARNING: you have a 'return' statement in your .bashrc, likely this will cause untold havoc."
|
330
329
|
printf "\n This means that if you see '[ -z "\$PS1" ] && return' then you must change this line to:"
|
331
330
|
printf "\n if [[ -n "\$PS1" ]] ; then"
|
data/scripts/utility
CHANGED
@@ -24,6 +24,17 @@ __rvm_teardown() {
|
|
24
24
|
# Ruby strings are scoped to their action.
|
25
25
|
# Hence, we ensure we remove them at in
|
26
26
|
# the cleanup phase.
|
27
|
+
|
28
|
+
# Clean up after CC switch
|
29
|
+
if [[ -n "$rvm_clang_flag" ]] ; then
|
30
|
+
if [[ -n "$rvm_prior_cc" ]] ; then
|
31
|
+
export CC="$rvm_prior_cc"
|
32
|
+
else
|
33
|
+
unset CC
|
34
|
+
fi
|
35
|
+
unset rvm_prior_cc
|
36
|
+
fi
|
37
|
+
|
27
38
|
unset rvm_ruby_strings
|
28
39
|
}
|
29
40
|
|
@@ -65,8 +76,8 @@ is_a_function() { type $1 | head -n 1 | grep -q "function" ; }
|
|
65
76
|
__rvm_quote_args() {
|
66
77
|
local quoted_string=""
|
67
78
|
for quoted_argument in "$@"; do
|
68
|
-
if
|
69
|
-
quoted_string="$quoted_string '$(
|
79
|
+
if printf "%s" "$quoted_argument" | grep -vq "^[[:alnum:]]$"; then
|
80
|
+
quoted_string="$quoted_string '$(printf "%s" "$quoted_argument" | sed "s/'/\'\\\'\'/g")'"
|
70
81
|
else
|
71
82
|
quoted_string="$quoted_string $quoted_argument"
|
72
83
|
fi
|
@@ -169,7 +180,7 @@ __rvm_cleanup_variables() {
|
|
169
180
|
|
170
181
|
if [[ "$rvm_sticky_flag" = "1" ]] ; then export rvm_gemset_name ; else unset rvm_gemset_name ; fi
|
171
182
|
|
172
|
-
unset rvm_action rvm_irbrc_file rvm_command rvm_error_message rvm_url rvm_force_flag rvm_all_flag rvm_reconfigure_flag rvm_make_flags rvm_bin_flag rvm_import_flag rvm_export_flag rvm_self_flag rvm_gem_flag rvm_rubygems_flag rvm_debug_flag rvm_delete_flag rvm_summary_flag rvm_test_flag _rvm_spec_flag rvm_json_flag rvm_yaml_flag rvm_shebang_flag rvm_env_flag rvm_tail_flag rvm_use_flag rvm_dir_flag rvm_list_flag rvm_empty_flag rvm_file_name rvm_benchmark_flag rvm_clear_flag rvm_name_flag rvm_verbose_flag rvm_user_flag rvm_system_flag rvm_ruby_configure_flags rvm_uninstall_flag rvm_install_flag rvm_llvm_flag rvm_ruby_bits rvm_sticky_flag rvm_rvmrc_flag rvm_gems_flag rvm_only_path_flag rvm_docs_flag rvm_ruby_aliases rvm_ruby_aliases rvm_patch_names
|
183
|
+
unset rvm_action rvm_irbrc_file rvm_command rvm_error_message rvm_url rvm_force_flag rvm_all_flag rvm_reconfigure_flag rvm_make_flags rvm_bin_flag rvm_import_flag rvm_export_flag rvm_self_flag rvm_gem_flag rvm_rubygems_flag rvm_debug_flag rvm_delete_flag rvm_summary_flag rvm_test_flag _rvm_spec_flag rvm_json_flag rvm_yaml_flag rvm_shebang_flag rvm_env_flag rvm_tail_flag rvm_use_flag rvm_dir_flag rvm_list_flag rvm_empty_flag rvm_file_name rvm_benchmark_flag rvm_clear_flag rvm_name_flag rvm_verbose_flag rvm_user_flag rvm_system_flag rvm_ruby_configure_flags rvm_uninstall_flag rvm_install_flag rvm_llvm_flag rvm_ruby_bits rvm_sticky_flag rvm_rvmrc_flag rvm_gems_flag rvm_only_path_flag rvm_docs_flag rvm_ruby_aliases rvm_ruby_aliases rvm_patch_names rvm_clang_flag
|
173
184
|
}
|
174
185
|
|
175
186
|
# Unset ruby-specific variables
|
@@ -498,9 +509,9 @@ __rvm_make_flags() {
|
|
498
509
|
# \ls /usr/lib/gcc/x86_64-apple-darwin10
|
499
510
|
|
500
511
|
# Set the build & host type
|
501
|
-
if [[ "Power Macintosh" = "$(sysctl hw.machine
|
512
|
+
if [[ "Power Macintosh" = "$(sysctl -n hw.machine)" ]] ; then
|
502
513
|
: # Do nothing ?
|
503
|
-
elif [[ $(sysctl hw.cpu64bit_capable
|
514
|
+
elif [[ "$(sysctl -n hw.cpu64bit_capable)" = 1 || "$(sysctl -n hw.optional.x86_64)" = 1 ]] ; then
|
504
515
|
# 64 bit capable
|
505
516
|
if [[ "-arch x86_64" = "$rvm_archflags" ]] ; then
|
506
517
|
rvm_ruby_configure_flags="${rvm_ruby_configure_flags} --build=x86_64-apple-darwin$(uname -r) --host=x86_64-apple-darwin$(uname -r)"
|
@@ -510,10 +521,6 @@ __rvm_make_flags() {
|
|
510
521
|
rvm_archflags="-arch x86_64"
|
511
522
|
rvm_ruby_configure_flags="${rvm_ruby_configure_flags} --build=x86_64-apple-darwin$(uname -r) --host=x86_64-apple-darwin$(uname -r)"
|
512
523
|
fi
|
513
|
-
else
|
514
|
-
# 32 bit capable only
|
515
|
-
if [[ -z "$rvm_archflags" ]] ; then rvm_archflags="-arch i386" ; fi
|
516
|
-
rvm_ruby_configure_flags="${rvm_ruby_configure_flags} --build=i386-apple-darwin$(uname -r) --host=i386-apple-darwin$(uname -r)"
|
517
524
|
fi
|
518
525
|
|
519
526
|
if [[ ! -z "$rvm_archflags" ]] ; then
|
@@ -705,14 +712,16 @@ __rvm_ensure_has_enviroment_files() {
|
|
705
712
|
fi ; unset file_name
|
706
713
|
# Next, ensure we have default wrapper files. Also, prevent it from recursing.
|
707
714
|
if [[ -z "$rvm_creating_default_wrappers" ]]; then
|
715
|
+
# We need to generate wrappers for both the default gemset and the global gemset.
|
716
|
+
for wrapper_identifier in "$environment_identifier" "${environment_identifier}@global" ; do
|
708
717
|
rvm_creating_default_wrappers=1
|
709
|
-
directory_name="$rvm_wrappers_path/$
|
718
|
+
directory_name="$rvm_wrappers_path/$wrapper_identifier"
|
710
719
|
if [[ ! -L "$directory_name" && ! -d "$directory_name" ]]; then
|
711
720
|
mkdir -p "$directory_name"
|
712
|
-
|
713
|
-
$rvm_scripts_path/wrapper "$environment_identifier" &> /dev/null
|
721
|
+
$rvm_scripts_path/wrapper "$wrapper_identifier" &> /dev/null
|
714
722
|
fi
|
715
723
|
unset rvm_creating_default_wrappers directory_name
|
724
|
+
done; unset wrapper_identifier
|
716
725
|
fi
|
717
726
|
}
|
718
727
|
|
@@ -744,3 +753,36 @@ __rvm_ultimate_question() {
|
|
744
753
|
printf "\nUltimate Question."
|
745
754
|
}
|
746
755
|
|
756
|
+
# Checks the rvmrc for the given directory. Note that if
|
757
|
+
# argument is passed, it will be used instead of pwd.
|
758
|
+
__rvm_project_rvmrc() {
|
759
|
+
local cwd
|
760
|
+
# Get the first argument or the pwd.
|
761
|
+
cwd="${1:-"$(pwd)"}"
|
762
|
+
while : ; do
|
763
|
+
if [[ -z "$cwd" ]] || [[ "$HOME" = "$cwd" ]] || [[ "/" = "$cwd" ]] ; then
|
764
|
+
if [[ -n "$rvm_rvmrc_cwd" ]] ; then
|
765
|
+
if [[ -z "$rvm_previous_environment" ]] ; then
|
766
|
+
rvm default 1>/dev/null 2>&1
|
767
|
+
else
|
768
|
+
rvm "$rvm_previous_environment" 1>/dev/null 2>&1
|
769
|
+
fi
|
770
|
+
unset rvm_rvmrc_cwd rvm_previous_environment
|
771
|
+
fi
|
772
|
+
break
|
773
|
+
else
|
774
|
+
if [[ -f "$cwd/.rvmrc" ]] ; then
|
775
|
+
if [[ "$rvm_rvmrc_cwd" != "$cwd" ]] ; then
|
776
|
+
if [[ -z "$rvm_previous_environment" ]] ; then
|
777
|
+
rvm_previous_environment="$(__rvm_environment_identifier)"
|
778
|
+
fi
|
779
|
+
rvm_rvmrc_cwd="$cwd"
|
780
|
+
source "$cwd/.rvmrc"
|
781
|
+
fi
|
782
|
+
break
|
783
|
+
else
|
784
|
+
cwd=$(dirname "$cwd")
|
785
|
+
fi
|
786
|
+
fi
|
787
|
+
done
|
788
|
+
}
|
data/scripts/wrapper
CHANGED
@@ -28,18 +28,21 @@ wrap() {
|
|
28
28
|
|
29
29
|
symlink_binary() {
|
30
30
|
# Generate the default wrapper with the given binary name.
|
31
|
-
|
32
|
-
#
|
33
|
-
|
34
|
-
|
31
|
+
# We first check if we can wrap the binary and if we were able to,
|
32
|
+
# we then symlink it into place.
|
33
|
+
if wrap_binary && [[ -f "$file_name" ]]; then
|
34
|
+
rm -f "${rvm_bin_path}/${prefix}_${binary_name}"
|
35
|
+
ln -fs "$file_name" "${rvm_bin_path}/${prefix}_${binary_name}"
|
36
|
+
fi
|
35
37
|
}
|
36
38
|
|
37
39
|
wrap_binary() {
|
38
|
-
#
|
39
|
-
if command -v $binary_name > /dev/null; then
|
40
|
+
# We wrap when the given binary is in the path or override_check is set to one.
|
41
|
+
if [[ "$override_check" = "1" ]] || command -v $binary_name > /dev/null; then
|
40
42
|
wrap
|
41
43
|
else
|
42
44
|
$rvm_scripts_path/log "error" "Binary '$binary_name' not found in path."
|
45
|
+
return 1
|
43
46
|
fi
|
44
47
|
}
|
45
48
|
|
@@ -58,8 +61,9 @@ fi
|
|
58
61
|
|
59
62
|
ruby_string="$1"; shift
|
60
63
|
|
64
|
+
override_check=0
|
61
65
|
prefix="$1"
|
62
|
-
|
66
|
+
[[ "$#" -gt 0 ]] && shift
|
63
67
|
|
64
68
|
binaries="$(echo "$@" | __rvm_strip)"
|
65
69
|
|
@@ -85,19 +89,18 @@ environment_identifier="$(__rvm_environment_identifier)"
|
|
85
89
|
for binary_name in $binaries; do
|
86
90
|
file_name="${rvm_wrappers_path}/${environment_identifier}/${binary_name}"
|
87
91
|
if [[ -z "$prefix" ]] ; then
|
92
|
+
override_check=1
|
88
93
|
wrap_binary
|
89
94
|
# Symlink it into place.
|
90
|
-
if [[ "$
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
ln -nsf "${file_name}" "${rvm_bin_path}/${binary_name}"
|
100
|
-
fi
|
95
|
+
if [[ -f "$file_name" ]]; then
|
96
|
+
if [[ "$binary_name" == "ruby" ]] ; then
|
97
|
+
destination="$rvm_bin_path/$environment_identifier"
|
98
|
+
else
|
99
|
+
destination="$rvm_bin_path/${binary_name}-${environment_identifier}"
|
100
|
+
fi
|
101
|
+
rm -rf "$destination"
|
102
|
+
ln -nsf "$file_name" "$destination"
|
103
|
+
fi; unset destination
|
101
104
|
else
|
102
105
|
symlink_binary
|
103
106
|
fi ; unset file_name
|