rvm 0.1.27 → 0.1.29
Sign up to get free protection for your applications and to get access to all the features.
- data/README +50 -44
- data/binscripts/rvm +13 -4
- data/binscripts/rvm-prompt +3 -2
- data/config/db +7 -7
- data/config/md5 +11 -43
- data/help/alias +46 -0
- data/help/benchmark +17 -0
- data/help/debug +8 -0
- data/help/fetch +5 -0
- data/help/gem +0 -0
- data/help/gemdir +0 -0
- data/help/gemset +0 -0
- data/help/implode +0 -0
- data/help/info +0 -0
- data/help/install +0 -0
- data/help/list +0 -0
- data/help/monitor +0 -0
- data/help/notes +0 -0
- data/help/package +0 -0
- data/help/rake +0 -0
- data/help/remove +0 -0
- data/help/reset +0 -0
- data/help/ruby +0 -0
- data/help/rvmrc +0 -0
- data/help/specs +0 -0
- data/help/srcdir +0 -0
- data/help/tests +0 -0
- data/help/uninstall +0 -0
- data/help/update +0 -0
- data/help/use +0 -0
- data/install +21 -9
- data/lib/VERSION.yml +1 -1
- data/rvm.gemspec +30 -5
- data/scripts/cli +108 -79
- data/scripts/db +2 -2
- data/scripts/fetch +2 -2
- data/scripts/gemsets +16 -12
- data/scripts/initialize +2 -1
- data/scripts/install +21 -9
- data/scripts/irbrc.rb +3 -2
- data/scripts/log +1 -1
- data/scripts/manage +62 -49
- data/scripts/monitor +4 -5
- data/scripts/notes +13 -7
- data/scripts/package +34 -5
- data/scripts/rvm +10 -2
- data/scripts/rvm-install +21 -9
- data/scripts/selector +25 -17
- data/scripts/set +7 -9
- data/scripts/update +21 -9
- data/scripts/utility +95 -73
- metadata +38 -6
data/scripts/package
CHANGED
@@ -4,8 +4,20 @@
|
|
4
4
|
# ruby dependency packages:
|
5
5
|
#
|
6
6
|
|
7
|
+
for rvmrc in /etc/rvmrc $HOME/.rvmrc ; do
|
8
|
+
if [[ -f "$rvmrc" ]] ; then
|
9
|
+
if grep -q '^\s*rvm .*$' $rvmrc ; then
|
10
|
+
$rvm_scripts_path/log "error" "$rvmrc is for rvm settings only.\nrvm CLI may NOT be called from within $rvmrc. \nSkipping the loading of $rvmrc"
|
11
|
+
return 1
|
12
|
+
else
|
13
|
+
source "$rvmrc"
|
14
|
+
fi
|
15
|
+
fi
|
16
|
+
done
|
17
|
+
|
7
18
|
source $rvm_scripts_path/initialize
|
8
19
|
source $rvm_scripts_path/utility
|
20
|
+
__rvm_load_rvmrc
|
9
21
|
|
10
22
|
trap "rm -f $rvm_tmp_path/$$* > /dev/null 2>&1 ; exit" 0 1 2 3 15
|
11
23
|
if [[ ! -z "$rvm_trace_flag" ]] ; then set -x ; export rvm_trace_flag ; fi
|
@@ -37,7 +49,7 @@ install_package() {
|
|
37
49
|
|
38
50
|
builtin cd "$rvm_src_path/$package-$version"
|
39
51
|
|
40
|
-
__rvm_run "$package/configure" "${configure:-"./configure --prefix=$rvm_usr_path"} $configure_flags" "Configuring $package in $rvm_src_path/$package-$version."
|
52
|
+
__rvm_run "$package/configure" "${configure:-"./configure --prefix=${prefix_path:-"$rvm_usr_path"}"} $configure_flags" "Configuring $package in $rvm_src_path/$package-$version."
|
41
53
|
|
42
54
|
unset configure_flags
|
43
55
|
|
@@ -79,20 +91,27 @@ openssl() {
|
|
79
91
|
else
|
80
92
|
export openssl_os="os/compiler darwin-i386-cc"
|
81
93
|
fi
|
82
|
-
package="openssl" ; version="0.9.
|
94
|
+
package="openssl" ; version="0.9.8n" ; archive_format="tar.gz"
|
83
95
|
package_url="http://www.openssl.org/source"
|
84
96
|
configure="./config --prefix=$rvm_usr_path zlib no-asm no-krb5 shared"
|
85
97
|
install_package
|
86
98
|
}
|
87
99
|
|
88
100
|
zlib() {
|
89
|
-
package="zlib" ; version="1.2.
|
101
|
+
package="zlib" ; version="1.2.5" ; archive_format="tar.gz"
|
90
102
|
package_url="http://www.zlib.net"
|
91
103
|
install_package
|
92
104
|
}
|
93
105
|
|
94
|
-
|
106
|
+
autoconf() {
|
107
|
+
package_url="ftp.gnu.org/gnu/autoconf"
|
108
|
+
package="autoconf" ; version="2.65" ; archive_format="tar.gz"
|
109
|
+
|
110
|
+
prefix_path="${rvm_symlink_path:-"${rvm_path:-"$HOME/.rvm"}/bin"}"
|
111
|
+
install_package
|
112
|
+
}
|
95
113
|
|
114
|
+
ncurses() {
|
96
115
|
package_url="http://ftp.gnu.org/pub/gnu/ncurses"
|
97
116
|
package="ncurses" ; version="5.7" ; archive_format="tar.gz"
|
98
117
|
configure_flags="--with-shared --disable-rpath --without-debug --without-ada --enable-safe-sprintf --enable-sigwinch --without-progs"
|
@@ -111,6 +130,16 @@ gettext() {
|
|
111
130
|
install_package
|
112
131
|
}
|
113
132
|
|
133
|
+
libxml2() {
|
134
|
+
package_url="ftp://xmlsoft.org/libxml2/"
|
135
|
+
package="libxml2" ; version="2.7.3" ; archive_format="tar.gz"
|
136
|
+
if [[ "Darwin" = "$(uname)" ]] ; then
|
137
|
+
configure="./configure --prefix=${rvm_usr_path} --build=i686-apple-darwin$(uname -r) --host=i686-apple-darwin$(uname -r)"
|
138
|
+
fi
|
139
|
+
install_package
|
140
|
+
unset prefix_path
|
141
|
+
}
|
142
|
+
|
114
143
|
glib() {
|
115
144
|
package="glib" ; version="2.23.1" ; archive_format="tar.gz"
|
116
145
|
package_url="http://ftp.gnome.org/pub/gnome/sources/glib/2.23"
|
@@ -146,7 +175,7 @@ llvm() {
|
|
146
175
|
}
|
147
176
|
|
148
177
|
if [[ ! -z "$library" ]] ; then
|
149
|
-
if [[ " readline iconv curl openssl zlib ncurses pkgconfig gettext glib mono llvm " =~ "$library" ]] ; then
|
178
|
+
if [[ " readline iconv curl openssl zlib autoconf ncurses pkgconfig gettext glib mono llvm libxml2 " =~ "$library" ]] ; then
|
150
179
|
${library}
|
151
180
|
else
|
152
181
|
$rvm_scripts_path/log "error" "Package '${library}' is unknown."
|
data/scripts/rvm
CHANGED
@@ -9,8 +9,16 @@ if [[ "$rvm_loaded_flag" != "1" ]] || [[ "$rvm_reload_flag" = "1" ]] ; then
|
|
9
9
|
|
10
10
|
mkdir -p $HOME/.gem/cache
|
11
11
|
|
12
|
-
|
13
|
-
|
12
|
+
for rvmrc in /etc/rvmrc $HOME/.rvmrc ; do
|
13
|
+
if [[ -f "$rvmrc" ]] ; then
|
14
|
+
if grep -q '^\s*rvm .*$' $rvmrc ; then
|
15
|
+
echo -e "Error: $rvmrc is for rvm settings only.\nrvm CLI may NOT be called from within $rvmrc. \nSkipping the loading of $rvmrc"
|
16
|
+
return 1
|
17
|
+
else
|
18
|
+
source "$rvmrc"
|
19
|
+
fi
|
20
|
+
fi
|
21
|
+
done
|
14
22
|
|
15
23
|
if [[ -z "$rvm_prefix" ]] ; then
|
16
24
|
if [[ "root" = "$(whoami)" ]] ; then
|
data/scripts/rvm-install
CHANGED
@@ -29,7 +29,7 @@ spinner() {
|
|
29
29
|
index=$((($spinner_counter % 8)))
|
30
30
|
echo -e -n "\r${array[$index]}"
|
31
31
|
let "spinner_counter=spinner_counter+1"
|
32
|
-
|
32
|
+
command -v perl > /dev/null 2>&1 && perl -e 'sleep 0.5'
|
33
33
|
}
|
34
34
|
|
35
35
|
if echo "$*" | grep -q 'trace' ; then echo "$*" ; env | grep '^rvm_' ; set -x ; fi
|
@@ -56,6 +56,7 @@ fi
|
|
56
56
|
if [[ -z "$rvm_path" ]] ; then rvm_path="${rvm_prefix}rvm" ; fi
|
57
57
|
|
58
58
|
source scripts/initialize
|
59
|
+
|
59
60
|
if grep -q 'scripts/rvm' $HOME/.bash* || grep -q 'scripts/rvm' $HOME/.zsh*; then
|
60
61
|
if [[ -d "$rvm_path" ]] && [[ -s "${rvm_path}/scripts/rvm" ]] ; then
|
61
62
|
export upgrade_flag=1
|
@@ -102,7 +103,7 @@ fi
|
|
102
103
|
|
103
104
|
spinner
|
104
105
|
|
105
|
-
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
|
106
|
+
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
|
106
107
|
|
107
108
|
for file in README LICENCE ; do
|
108
109
|
spinner
|
@@ -112,7 +113,7 @@ done
|
|
112
113
|
#
|
113
114
|
# Scripts
|
114
115
|
#
|
115
|
-
for dir_name in config scripts examples lib hooks ; do
|
116
|
+
for dir_name in config scripts examples lib hooks help ; do
|
116
117
|
spinner
|
117
118
|
mkdir -p "$rvm_path/$dir_name"
|
118
119
|
if [[ -d "$source_path/$dir_name" ]] ; then
|
@@ -265,17 +266,28 @@ if [[ "$upgrade_flag" -eq 1 ]] ; then
|
|
265
266
|
else
|
266
267
|
if [[ "root" != "$(whoami)" ]] ; then
|
267
268
|
echo -e "\n$(tput setaf 1)You must now finish the install manually:$(tput sgr0)"
|
268
|
-
echo -e "\n1) Place the folowing line at the end of your shell's loading files(.bashrc
|
269
|
+
echo -e "\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:"
|
269
270
|
echo -e "\n if [[ -s $rvm_path/scripts/rvm ]] ; then source $rvm_path/scripts/rvm ; fi"
|
270
271
|
echo -e "\n2) Ensure that there is no 'return' from inside the .bashrc file. (otherwise rvm will be prevented from working properly)."
|
271
|
-
echo -e "\n This means that if you see '[ -z "$PS1" ] && return' then you must
|
272
|
-
echo -e "\n
|
273
|
-
echo -e "\n
|
272
|
+
echo -e "\n This means that if you see '[ -z "$PS1" ] && return' then you must change this line to:"
|
273
|
+
echo -e "\n if [[ ! -z "$PS1" ]] ; then"
|
274
|
+
echo -e "\n ... original content that was below the && return line ..."
|
275
|
+
echo -e "\n fi # <= be sure to close the if."
|
276
|
+
echo -e "\n #EOF .bashrc"
|
277
|
+
echo -e "\n Be absolutely *sure* to REMOVE the '&& return'."
|
274
278
|
echo -e "\n If you wish to DRY up your config you can 'source ~/.bashrc' at the top of your .bash_profile."
|
275
|
-
echo -e "\
|
279
|
+
echo -e "\n placing all non-interactive items in the .bashrc"
|
280
|
+
echo -e "\n3) Then $(tput setaf 1)CLOSE THIS SHELL$(tput sgr0) and open a new one in order to use rvm.\n"
|
276
281
|
fi
|
277
282
|
if [[ -s $HOME/.bashrc ]] && grep '&& return' $HOME/.bashrc ; then
|
278
|
-
echo -e "\n\nWARNING: you have a 'return' statement in your .bashrc, likely this will cause untold havoc.
|
283
|
+
echo -e "\n\nWARNING: you have a 'return' statement in your .bashrc, likely this will cause untold havoc.
|
284
|
+
This means that if you see '[ -z "$PS1" ] && return' then you must change this line to:
|
285
|
+
if [[ ! -z "$PS1" ]] ; then
|
286
|
+
... original content that was below the && return line ...
|
287
|
+
fi # <= be sure to close the if.
|
288
|
+
#EOF .bashrc
|
289
|
+
|
290
|
+
If you have any questions about this please visit #rvm on irc.freenode.net.\n"
|
279
291
|
fi
|
280
292
|
echo -e "Installation of RVM to $rvm_path/ is complete.\n\n"
|
281
293
|
fi
|
data/scripts/selector
CHANGED
@@ -31,7 +31,7 @@ __rvm_select() {
|
|
31
31
|
else
|
32
32
|
__rvm_db "macruby_version" "rvm_ruby_version"
|
33
33
|
__rvm_db "macruby_url" "rvm_url"
|
34
|
-
rvm_ruby_package_name="MacRuby%
|
34
|
+
rvm_ruby_package_name="MacRuby%20${rvm_ruby_version}.zip"
|
35
35
|
rvm_ruby_package_file="$rvm_ruby_package_name"
|
36
36
|
rvm_url="$rvm_url/$rvm_ruby_package_name"
|
37
37
|
fi
|
@@ -68,12 +68,14 @@ __rvm_select() {
|
|
68
68
|
rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "jruby_repo_url")}"
|
69
69
|
rvm_url="${rvm_ruby_repo_url:-$(__rvm_db "jruby_repo_url")}"
|
70
70
|
else
|
71
|
-
rvm_archive_extension="
|
71
|
+
rvm_archive_extension="tar.gz"
|
72
72
|
rvm_ruby_version="${rvm_ruby_version:-"$(__rvm_db "jruby_version")"}"
|
73
|
+
jruby_url="$(__rvm_db "jruby_url")"
|
73
74
|
rvm_ruby_package_file="${rvm_ruby_interpreter}-bin-${rvm_ruby_version}"
|
74
75
|
rvm_ruby_package_name="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
75
76
|
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
76
|
-
rvm_url="
|
77
|
+
rvm_url="${jruby_url}/${rvm_ruby_version}/${rvm_ruby_package_file}.tar.gz"
|
78
|
+
unset jruby_url
|
77
79
|
fi
|
78
80
|
alias jruby_ng="jruby --ng"
|
79
81
|
alias jruby_ng_server="jruby --ng-server"
|
@@ -104,20 +106,20 @@ __rvm_select() {
|
|
104
106
|
ironruby)
|
105
107
|
unset rvm_ruby_patch_level
|
106
108
|
if [[ "$rvm_head_flag" -eq 1 ]] ; then
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
109
|
+
rvm_ruby_version="head"
|
110
|
+
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
111
|
+
rvm_ruby_package_name="${rvm_ruby_string}"
|
112
|
+
rvm_ruby_repo_url="${rvm_ruby_repo_url:-$(__rvm_db "ironruby_repo_url")}"
|
113
|
+
rvm_url="${rvm_ruby_repo_url:-$(__rvm_db "ironruby_repo_url")}"
|
112
114
|
else
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
export rvm_url="$(__rvm_db "ironruby_url")v${rvm_ruby_version}"
|
115
|
+
rvm_archive_extension="zip"
|
116
|
+
rvm_ruby_version=${rvm_ruby_version:-"$(__rvm_db "ironruby_version")"}
|
117
|
+
rvm_ruby_string="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
118
|
+
rvm_ruby_package_name="${rvm_ruby_interpreter}-${rvm_ruby_version}"
|
119
|
+
rvm_ruby_package_file="${rvm_ruby_interpreter}-${rvm_ruby_version}.${rvm_archive_extension}"
|
120
|
+
rvm_url="$(__rvm_db "ironruby_${rvm_ruby_version}_url")${rvm_ruby_package_file}"
|
120
121
|
fi
|
122
|
+
export rvm_ruby_version rvm_ruby_string rvm_ruby_package_name rvm_ruby_repo_url rvm_url rvm_archive_extension
|
121
123
|
;;
|
122
124
|
|
123
125
|
ree)
|
@@ -164,8 +166,8 @@ __rvm_select() {
|
|
164
166
|
;;
|
165
167
|
|
166
168
|
current)
|
167
|
-
ruby_binary="$(
|
168
|
-
if $rvm_scripts_path/match "$ruby_binary" "rvm" ; then
|
169
|
+
ruby_binary="$(command -v ruby)"
|
170
|
+
if [[ $? -eq 0 ]] && $rvm_scripts_path/match "$ruby_binary" "rvm" ; then
|
169
171
|
rvm_ruby_string="$(dirname "$ruby_binary" | xargs dirname | xargs basename)"
|
170
172
|
else
|
171
173
|
rvm_ruby_interpreter="system"
|
@@ -373,6 +375,12 @@ __rvm_ruby_string() {
|
|
373
375
|
|
374
376
|
__rvm_unset_ruby_variables
|
375
377
|
|
378
|
+
# Alias'd rubies
|
379
|
+
if [[ -z "$alias_name" ]] ; then
|
380
|
+
value="$($rvm_scripts_path/db "$rvm_config_path/alias" "$ruby_string" 2>/dev/null)"
|
381
|
+
if [[ ! -z "$value" ]] ; then ruby_string="$value" ; fi
|
382
|
+
fi
|
383
|
+
|
376
384
|
for string in $(echo $ruby_string | tr '-' ' ') ; do
|
377
385
|
if [[ "head" = "$string" ]] ; then
|
378
386
|
rvm_ruby_revision="head"
|
data/scripts/set
CHANGED
@@ -22,15 +22,13 @@ __rvm_ruby_do() {
|
|
22
22
|
|
23
23
|
binary="$(echo $action | sed 's#do$##')"
|
24
24
|
if [[ -x "$rvm_ruby_home/bin/$binary" ]] ; then
|
25
|
-
rm -f "$rvm_path/gems/cache"
|
26
|
-
ln -nfs "$HOME/.gem/cache" "$rvm_path/gems/cache"
|
27
25
|
binary="$rvm_ruby_home/bin/$binary"
|
28
26
|
elif [[ -x "$rvm_ruby_global_gems_path/bin/$binary" ]] ; then
|
29
27
|
binary="$rvm_ruby_global_gems_path/bin/$binary"
|
30
28
|
elif [[ -x "$rvm_ruby_gem_home/bin/$binary" ]] ; then
|
31
29
|
binary="$rvm_ruby_gem_home/bin/$binary"
|
32
|
-
elif [[ "system" = "$rvm_ruby_string" ]] && [[ -x "$(
|
33
|
-
binary="$(basename $(
|
30
|
+
elif [[ "system" = "$rvm_ruby_string" ]] && [[ -x "$(command -v $binary)" ]] ; then
|
31
|
+
binary="$(basename $(command -v $binary) 2>/dev/null)"
|
34
32
|
else
|
35
33
|
$rvm_scripts_path/log "warn" "'$binary not found for $rvm_ruby_string' either does not exist or is not executable? :("
|
36
34
|
__rvm_unset_ruby_variables
|
@@ -42,7 +40,7 @@ __rvm_ruby_do() {
|
|
42
40
|
rvm_ruby_mode="--$(echo $rvm_ruby_mode | sed 's/^m//')"
|
43
41
|
fi
|
44
42
|
|
45
|
-
load_path="$(dirname $(
|
43
|
+
load_path="$(dirname $(command -v $binary) 2>/dev/null):$rvm_ruby_load_path"
|
46
44
|
# TODO: the else case below should be run if $args =~ /\.rb$/
|
47
45
|
if [[ "ruby" = "$(basename $binary)" ]] && [[ "$rvm_benchmark_flag" -ne 1 ]] ; then
|
48
46
|
if $rvm_scripts_path/match "$args" "\.rb$" ; then
|
@@ -64,7 +62,9 @@ __rvm_ruby_do() {
|
|
64
62
|
touch ./log/$rvm_ruby_string/$action.log ./log/$rvm_ruby_string/$action.error.log
|
65
63
|
eval "$rvm_command" >> ./log/$rvm_ruby_string/$action.log 2>> ./log/$rvm_ruby_string/$action.error.log
|
66
64
|
else
|
67
|
-
|
65
|
+
if [[ "$rvm_verbose_flag" != "0" ]] ; then
|
66
|
+
$rvm_scripts_path/log "info" "$rvm_ruby_string: $($rvm_ruby_home/bin/ruby -v $rvm_ruby_mode | tr "\n" ' ')"
|
67
|
+
fi
|
68
68
|
eval "$rvm_command"
|
69
69
|
fi
|
70
70
|
result=$?
|
@@ -146,7 +146,7 @@ __rvm_json() {
|
|
146
146
|
|
147
147
|
# Loop over a set or all rvm installed rubies to perform some action.
|
148
148
|
# Record the results and report based on CLI selections.
|
149
|
-
|
149
|
+
|
150
150
|
rubies=() ; successes=() ; errors=() ; statuses=()
|
151
151
|
# TODO: Extract the common functionality out of the if below
|
152
152
|
if [[ ! -z "$rvm_ruby_string" ]] ; then
|
@@ -175,5 +175,3 @@ if [[ ! -z "$rvm_json_flag" ]] ; then __rvm_json ; fi
|
|
175
175
|
$rvm_scripts_path/hook "after_do"
|
176
176
|
|
177
177
|
exit ${#errors[*]}
|
178
|
-
#}
|
179
|
-
|
data/scripts/update
CHANGED
@@ -29,7 +29,7 @@ spinner() {
|
|
29
29
|
index=$((($spinner_counter % 8)))
|
30
30
|
echo -e -n "\r${array[$index]}"
|
31
31
|
let "spinner_counter=spinner_counter+1"
|
32
|
-
|
32
|
+
command -v perl > /dev/null 2>&1 && perl -e 'sleep 0.5'
|
33
33
|
}
|
34
34
|
|
35
35
|
if echo "$*" | grep -q 'trace' ; then echo "$*" ; env | grep '^rvm_' ; set -x ; fi
|
@@ -56,6 +56,7 @@ fi
|
|
56
56
|
if [[ -z "$rvm_path" ]] ; then rvm_path="${rvm_prefix}rvm" ; fi
|
57
57
|
|
58
58
|
source scripts/initialize
|
59
|
+
|
59
60
|
if grep -q 'scripts/rvm' $HOME/.bash* || grep -q 'scripts/rvm' $HOME/.zsh*; then
|
60
61
|
if [[ -d "$rvm_path" ]] && [[ -s "${rvm_path}/scripts/rvm" ]] ; then
|
61
62
|
export upgrade_flag=1
|
@@ -102,7 +103,7 @@ fi
|
|
102
103
|
|
103
104
|
spinner
|
104
105
|
|
105
|
-
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
|
106
|
+
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
|
106
107
|
|
107
108
|
for file in README LICENCE ; do
|
108
109
|
spinner
|
@@ -112,7 +113,7 @@ done
|
|
112
113
|
#
|
113
114
|
# Scripts
|
114
115
|
#
|
115
|
-
for dir_name in config scripts examples lib hooks ; do
|
116
|
+
for dir_name in config scripts examples lib hooks help ; do
|
116
117
|
spinner
|
117
118
|
mkdir -p "$rvm_path/$dir_name"
|
118
119
|
if [[ -d "$source_path/$dir_name" ]] ; then
|
@@ -265,17 +266,28 @@ if [[ "$upgrade_flag" -eq 1 ]] ; then
|
|
265
266
|
else
|
266
267
|
if [[ "root" != "$(whoami)" ]] ; then
|
267
268
|
echo -e "\n$(tput setaf 1)You must now finish the install manually:$(tput sgr0)"
|
268
|
-
echo -e "\n1) Place the folowing line at the end of your shell's loading files(.bashrc
|
269
|
+
echo -e "\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:"
|
269
270
|
echo -e "\n if [[ -s $rvm_path/scripts/rvm ]] ; then source $rvm_path/scripts/rvm ; fi"
|
270
271
|
echo -e "\n2) Ensure that there is no 'return' from inside the .bashrc file. (otherwise rvm will be prevented from working properly)."
|
271
|
-
echo -e "\n This means that if you see '[ -z "$PS1" ] && return' then you must
|
272
|
-
echo -e "\n
|
273
|
-
echo -e "\n
|
272
|
+
echo -e "\n This means that if you see '[ -z "$PS1" ] && return' then you must change this line to:"
|
273
|
+
echo -e "\n if [[ ! -z "$PS1" ]] ; then"
|
274
|
+
echo -e "\n ... original content that was below the && return line ..."
|
275
|
+
echo -e "\n fi # <= be sure to close the if."
|
276
|
+
echo -e "\n #EOF .bashrc"
|
277
|
+
echo -e "\n Be absolutely *sure* to REMOVE the '&& return'."
|
274
278
|
echo -e "\n If you wish to DRY up your config you can 'source ~/.bashrc' at the top of your .bash_profile."
|
275
|
-
echo -e "\
|
279
|
+
echo -e "\n placing all non-interactive items in the .bashrc"
|
280
|
+
echo -e "\n3) Then $(tput setaf 1)CLOSE THIS SHELL$(tput sgr0) and open a new one in order to use rvm.\n"
|
276
281
|
fi
|
277
282
|
if [[ -s $HOME/.bashrc ]] && grep '&& return' $HOME/.bashrc ; then
|
278
|
-
echo -e "\n\nWARNING: you have a 'return' statement in your .bashrc, likely this will cause untold havoc.
|
283
|
+
echo -e "\n\nWARNING: you have a 'return' statement in your .bashrc, likely this will cause untold havoc.
|
284
|
+
This means that if you see '[ -z "$PS1" ] && return' then you must change this line to:
|
285
|
+
if [[ ! -z "$PS1" ]] ; then
|
286
|
+
... original content that was below the && return line ...
|
287
|
+
fi # <= be sure to close the if.
|
288
|
+
#EOF .bashrc
|
289
|
+
|
290
|
+
If you have any questions about this please visit #rvm on irc.freenode.net.\n"
|
279
291
|
fi
|
280
292
|
echo -e "Installation of RVM to $rvm_path/ is complete.\n\n"
|
281
293
|
fi
|
data/scripts/utility
CHANGED
@@ -26,64 +26,56 @@ is_a_function() { type $1 | head -n 1 | grep -q "function" ; }
|
|
26
26
|
|
27
27
|
# Ouput rvm environment information.
|
28
28
|
__rvm_info() {
|
29
|
-
|
30
29
|
if [[ ! -z "$rvm_ruby_args" ]] ; then
|
31
|
-
|
32
|
-
echo -e $info ; unset info
|
30
|
+
cat < <(rvm_ruby_string="$rvm_ruby_args"; __rvm_select ; __rvm_use ; __rvm_environment_info; echo -e "$environment_info")
|
33
31
|
else
|
34
32
|
__rvm_environment_info
|
33
|
+
echo -e "$environment_info"
|
35
34
|
fi
|
36
|
-
|
37
35
|
}
|
38
36
|
|
39
37
|
__rvm_environment_info() {
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
if [[ ! -z "$ZSH_VERSION" ]] ; then echo -e " shell: \"zsh\"\n version: \"$ZSH_VERSION\"" ; fi
|
44
|
-
if [[ ! -z "$BASH_VERSION" ]] ; then echo -e " shell: \"bash\"\n version: \"$BASH_VERSION\"" ; fi
|
45
|
-
|
46
|
-
cat <<Ruby
|
47
|
-
|
48
|
-
ruby:
|
49
|
-
interpreter: "$(echo $full_version | awk '{print $1}')"
|
50
|
-
version: "$(echo $full_version | awk '{print $2}')"
|
51
|
-
date: "$(echo $full_version | sed 's/^.*(\([0-9]\{4\}\(-[0-9][0-9]\)\{2\}\).*$/\1/')"
|
52
|
-
platform: "$(echo $full_version | sed 's/^.*\[//' | sed 's/\].*$//')"
|
53
|
-
patchlevel: "$(echo $full_version | sed 's/^.*(//' | sed 's/).*$//')"
|
54
|
-
full_version: "$full_version"
|
55
|
-
|
56
|
-
Ruby
|
57
|
-
|
58
|
-
cat <<Homes
|
59
|
-
homes:
|
60
|
-
gem: "${GEM_HOME:-'not set'}"
|
61
|
-
ruby: "${MY_RUBY_HOME:-'not set'}"
|
62
|
-
Homes
|
63
|
-
|
64
|
-
cat <<Binaries
|
65
|
-
binaries:
|
66
|
-
ruby: "$(which ruby 2>/dev/null)"
|
67
|
-
irb: "$(which irb 2>/dev/null)"
|
68
|
-
gem: "$(which gem 2>/dev/null)"
|
69
|
-
rake: "$(which rake 2>/dev/null)"
|
70
|
-
Binaries
|
38
|
+
environment_info="" ; full_version=""
|
39
|
+
ruby=$(command -v ruby)
|
40
|
+
if [[ $? -eq 0 ]] && [[ -x "$ruby" ]] ; then full_version="$($ruby -v)" ; fi
|
71
41
|
|
72
|
-
|
73
|
-
|
74
|
-
environment:
|
75
|
-
GEM_HOME: "$GEM_HOME"
|
76
|
-
GEM_PATH: "$GEM_PATH"
|
77
|
-
BUNDLE_PATH: "$BUNDLE_PATH"
|
78
|
-
MY_RUBY_HOME: "$MY_RUBY_HOME"
|
79
|
-
IRBRC: "$IRBRC"
|
80
|
-
Environment
|
81
|
-
|
82
|
-
gemset="$(echo $GEM_HOME | awk -F${rvm_gemset_separator:-'@'} '{print $2}')"
|
83
|
-
echo -e " gemset: \"$gemset\"\n"
|
84
|
-
|
85
|
-
if [[ ! -z "$MAGLEV_HOME" ]] ; then info="$info\n MAGLEV_HOME: \"$MAGLEV_HOME\"" ; fi
|
42
|
+
environment_info="$environment_info\nsystem:\n uname: \"$(uname -a)\""
|
86
43
|
|
44
|
+
if [[ ! -z "$ZSH_VERSION" ]] ; then
|
45
|
+
environment_info="$environment_info\n shell: \"zsh\"\n version: \"$ZSH_VERSION\""
|
46
|
+
fi
|
47
|
+
if [[ ! -z "$BASH_VERSION" ]] ; then
|
48
|
+
environment_info="$environment_info\n shell: \"bash\"\n version: \"$BASH_VERSION\""
|
49
|
+
fi
|
50
|
+
environment_info="$environment_info\n\nrvm:"
|
51
|
+
environment_info="$environment_info\n type: \"$(head -n 1 < <(type rvm))\""
|
52
|
+
environment_info="$environment_info\n version: \"$(__rvm_version | tr "\n" ' ' | sed 's/^[[:space:]]*//' | sed 's/[[:space:]]*$//')\""
|
53
|
+
environment_info="$environment_info\n\nruby:"
|
54
|
+
environment_info="$environment_info\n interpreter: \"$(echo "${full_version}" | awk '{print $1}')\""
|
55
|
+
environment_info="$environment_info\n version: \"$(echo "${full_version}" | awk '{print $2}')\""
|
56
|
+
environment_info="$environment_info\n date: \"$(echo "${full_version}" | sed 's/^.*(\([0-9]\{4\}\(-[0-9][0-9]\)\{2\}\).*$/\1/')\""
|
57
|
+
environment_info="$environment_info\n platform: \"$(echo "${full_version}" | sed 's/^.*\[//' | sed 's/\].*$//')\""
|
58
|
+
environment_info="$environment_info\n patchlevel: \"$(echo "${full_version}" | sed 's/^.*(//' | sed 's/).*$//')\""
|
59
|
+
environment_info="$environment_info\n full_version: \"${full_version}\""
|
60
|
+
environment_info="$environment_info\n\nhomes:"
|
61
|
+
environment_info="$environment_info\n gem: \"${GEM_HOME:-'not set'}\""
|
62
|
+
environment_info="$environment_info\n ruby: \"${MY_RUBY_HOME:-'not set'}\""
|
63
|
+
environment_info="$environment_info\n\nbinaries:"
|
64
|
+
environment_info="$environment_info\n ruby: \"$(command -v ruby)\""
|
65
|
+
environment_info="$environment_info\n irb: \"$(command -v irb)\""
|
66
|
+
environment_info="$environment_info\n gem: \"$(command -v gem)\""
|
67
|
+
environment_info="$environment_info\n rake: \"$(command -v rake)\""
|
68
|
+
environment_info="$environment_info\n\nenvironment:"
|
69
|
+
environment_info="$environment_info\n GEM_HOME: \"$GEM_HOME\""
|
70
|
+
environment_info="$environment_info\n GEM_PATH: \"$GEM_PATH\""
|
71
|
+
environment_info="$environment_info\n BUNDLE_PATH: \"$BUNDLE_PATH\""
|
72
|
+
environment_info="$environment_info\n MY_RUBY_HOME: \"$MY_RUBY_HOME\""
|
73
|
+
environment_info="$environment_info\n IRBRC: \"$IRBRC\""
|
74
|
+
environment_info="$environment_info\n RUBYOPT: \"$RUBYOPT\""
|
75
|
+
environment_info="$environment_info\n gemset: \"$(echo $GEM_HOME | awk -F${rvm_gemset_separator:-'@'} '{print $2}')\"\n"
|
76
|
+
if [[ ! -z "$MAGLEV_HOME" ]] ; then
|
77
|
+
environment_info="$environment_info\n MAGLEV_HOME: \"$MAGLEV_HOME\""
|
78
|
+
fi
|
87
79
|
unset full_version
|
88
80
|
}
|
89
81
|
|
@@ -119,7 +111,7 @@ __rvm_debug() {
|
|
119
111
|
|
120
112
|
for file_name in $(echo $debug_files); do
|
121
113
|
if [[ -f "$file_name" ]] && [[ -s "$file_name" ]] ; then
|
122
|
-
$rvm_scripts_path/log "debug" "$file_name (filtered):\n$(cat $file_name | awk '!/assword|_key/')\n"
|
114
|
+
$rvm_scripts_path/log "debug" "$file_name \(filtered\):\n$(cat $file_name | awk '!/assword|_key/')\n"
|
123
115
|
fi
|
124
116
|
done
|
125
117
|
|
@@ -134,7 +126,6 @@ __rvm_strings() {
|
|
134
126
|
return 1
|
135
127
|
else
|
136
128
|
results="$results $(__rvm_select ; echo $rvm_ruby_string)"
|
137
|
-
unset rvm_ruby_string
|
138
129
|
fi
|
139
130
|
done
|
140
131
|
echo $results
|
@@ -199,7 +190,7 @@ __rvm_cleanup_variables() {
|
|
199
190
|
|
200
191
|
# Unset ruby-specific variables
|
201
192
|
__rvm_unset_ruby_variables() {
|
202
|
-
unset rvm_ruby_interpreter rvm_ruby_version rvm_url rvm_ruby_repo_url rvm_ruby_package_name rvm_ruby_patch_level rvm_ruby_make rvm_ruby_make_install rvm_ruby_revision rvm_ruby_tag rvm_major_version rvm_minor_version rvm_ruby_gem_home rvm_ruby_binary rvm_ruby_home rvm_ruby_log_path rvm_ruby_src_path rvm_ruby_irbrc rvm_ruby_selected_flag
|
193
|
+
unset rvm_ruby_interpreter rvm_ruby_version rvm_url rvm_ruby_repo_url rvm_ruby_package_name rvm_ruby_patch_level rvm_ruby_make rvm_ruby_make_install rvm_ruby_revision rvm_ruby_tag rvm_major_version rvm_minor_version rvm_ruby_gem_home rvm_ruby_binary rvm_ruby_home rvm_ruby_log_path rvm_ruby_src_path rvm_ruby_irbrc rvm_ruby_selected_flag rvm_ruby_src_path rvm_ruby_repo_url rvm_major_version rvm_minor_version rvm_ruby_gem_home rvm_head_flag rvm_ruby_configure rvm_ruby_mode rvm_ruby_package_file rvm_ruby_package_name rvm_ruby_gem_path rvm_ruby_name rvm_ruby_alias
|
203
194
|
}
|
204
195
|
|
205
196
|
__rvm_set_rvmrc() {
|
@@ -220,8 +211,16 @@ __rvm_set_rvmrc() {
|
|
220
211
|
|
221
212
|
}
|
222
213
|
__rvm_load_rvmrc() {
|
223
|
-
|
224
|
-
|
214
|
+
for rvmrc in /etc/rvmrc $HOME/.rvmrc ; do
|
215
|
+
if [[ -f "$rvmrc" ]] ; then
|
216
|
+
if grep -q '^\s*rvm .*$' $rvmrc ; then
|
217
|
+
$rvm_scripts_path/log "error" "$rvmrc is for rvm settings only.\nrvm CLI may NOT be called from within $rvmrc. \nSkipping the loading of $rvmrc"
|
218
|
+
return 1
|
219
|
+
else
|
220
|
+
source "$rvmrc"
|
221
|
+
fi
|
222
|
+
fi
|
223
|
+
done
|
225
224
|
}
|
226
225
|
|
227
226
|
# Wrap the specified ruby code file in a Benchmark.bmbm block and execute it.
|
@@ -291,14 +290,13 @@ __rvm_load_defaults() {
|
|
291
290
|
|
292
291
|
__rvm_db "system_ruby" "rvm_system_ruby"
|
293
292
|
if [[ ! -z "$rvm_system_ruby" ]] ; then
|
294
|
-
rvm_system_ruby=$(
|
293
|
+
rvm_system_ruby=$(command -v ruby)
|
295
294
|
if [[ $? -ne 0 ]] ; then
|
296
295
|
$rvm_scripts_path/log "info" "System ruby not found, no system default will be stored."
|
297
296
|
else
|
298
297
|
$rvm_scripts_path/db "$rvm_config_path/user" "system_ruby" "$rvm_system_ruby"
|
299
|
-
|
300
298
|
# Now store system system & user gem paths
|
301
|
-
if [[ ! -z "$(
|
299
|
+
if [[ ! -z "$(command -v gem)" ]] ; then
|
302
300
|
__rvm_db "system_user_gem_path" "rvm_system_user_gem_path"
|
303
301
|
if [[ -z "$rvm_system_user_gem_path" ]] ; then
|
304
302
|
rvm_system_user_gem_path=$( rvm system ; gem env gemdir user; )
|
@@ -425,7 +423,7 @@ __rvm_list_known() {
|
|
425
423
|
echo -e "jruby-1.2.0\njruby-1.3.1\njruby(-1.4.0) # the default\njruby-head"
|
426
424
|
echo -e "rbx(-prc1) # default\nrbx-head"
|
427
425
|
echo -e "ree-1.8.6\nree(-1.8.7) # the default\nree-1.8.6-head\nree-1.8.7-head"
|
428
|
-
echo -e "maglev(-
|
426
|
+
echo -e "maglev(-23400)\nmaglev-head"
|
429
427
|
echo -e "mput(-head) # shyouhei head, the default mput"
|
430
428
|
echo -e "ironruby-0.9.3\nironruby-1.0-rc2\nironruby-head"
|
431
429
|
if [[ "Darwin" = "$(uname)" ]] ; then
|
@@ -435,7 +433,7 @@ __rvm_list_known() {
|
|
435
433
|
|
436
434
|
__rvm_list_rubies() {
|
437
435
|
echo
|
438
|
-
ruby=$(
|
436
|
+
ruby=$(command -v ruby) ; current_ruby=""
|
439
437
|
if [[ ! -z "$ruby" ]] && [[ ! -z "$(echo $ruby | awk '/rvm/')" ]] ; then
|
440
438
|
current_ruby="$(echo $ruby | xargs dirname | xargs dirname | xargs basename 2> /dev/null)"
|
441
439
|
fi
|
@@ -462,18 +460,18 @@ __rvm_list_rubies() {
|
|
462
460
|
fi ; unset version
|
463
461
|
fi
|
464
462
|
|
465
|
-
system_ruby="$(rvm system ;
|
466
|
-
if [[ ! -z "$system_ruby" ]] && [[ -x "$system_ruby" ]]; then
|
463
|
+
system_ruby="$(rvm system ; command -v ruby)"
|
464
|
+
if [[ ! -z "$system_ruby" ]] && [[ -x "$system_ruby" ]] ; then
|
467
465
|
echo -e "\nSystem Ruby\n"
|
468
466
|
system_version=$($system_ruby -v)
|
469
|
-
|
467
|
+
binary=$(ls -l "$system_ruby" | awk '{print $NF}') # Account for symbolic links.
|
468
|
+
string="[ $(file $binary | awk '/x86.64/ {print "x86_64"} /386/ {print "i386"} /ppc/ {print "ppc"}' | tr "\n" ' ')]"
|
469
|
+
|
470
470
|
if [[ ! -z "$system_ruby" ]] && [[ "$current_ruby" = "$system_version" ]] ; then echo -n "=> " ; else echo -n " " ; fi
|
471
471
|
echo -e "$(tput setaf 2)system$(tput sgr0) $string"
|
472
|
-
else
|
473
|
-
$rvm_scripts_path/log "info" "No system ruby found."
|
474
472
|
fi
|
475
473
|
|
476
|
-
unset current_ruby version selected system_ruby system_version string
|
474
|
+
unset current_ruby version selected system_ruby system_version string binary
|
477
475
|
echo
|
478
476
|
}
|
479
477
|
|
@@ -532,7 +530,7 @@ __rvm_update_rvm() {
|
|
532
530
|
}
|
533
531
|
|
534
532
|
__rvm_reboot() {
|
535
|
-
$rvm_scripts_path/log "warn" "Do you wish to
|
533
|
+
$rvm_scripts_path/log "warn" "Do you wish to reboot rvm? ('yes', or 'no')"
|
536
534
|
read response
|
537
535
|
if [[ "yes" = "$response" ]] ; then
|
538
536
|
builtin cd $rvm_path
|
@@ -571,10 +569,10 @@ __rvm_pushpop() {
|
|
571
569
|
# Meant for use before and after an operation that might reset the currently selected ruby.
|
572
570
|
__rvm_state() {
|
573
571
|
if [[ -z "$rvm_state" ]] ; then
|
574
|
-
if [[ -z "$(
|
572
|
+
if [[ -z "$(command -v ruby | awk /$(basename $rvm_rubies_path)/)" ]] ; then
|
575
573
|
rvm_state=system
|
576
574
|
else
|
577
|
-
rvm_state="$(dirname "$(
|
575
|
+
rvm_state="$(dirname "$(command -v ruby)" | xargs dirname | xargs basename)"
|
578
576
|
fi
|
579
577
|
else
|
580
578
|
rvm_ruby_string="$rvm_state"
|
@@ -587,7 +585,7 @@ __rvm_state() {
|
|
587
585
|
# Output an inspection of selected 'binary' scripts, based on CLI selection.
|
588
586
|
__rvm_inspect() {
|
589
587
|
for binary in $rvm_ruby_args ; do
|
590
|
-
actual_file="$(
|
588
|
+
actual_file="$(command -v $binary)"
|
591
589
|
$rvm_scripts_path/log "info" "$actual_file:"
|
592
590
|
if [[ ! -z "$rvm_shebang_flag" ]] ; then cat $actual_file | head -n 1 ; fi
|
593
591
|
if [[ ! -z "$rvm_env_flag" ]] ; then cat $actual_file | awk '/ENV/' ; fi
|
@@ -638,7 +636,7 @@ __rvm_make_flags() {
|
|
638
636
|
# Select a gemset based on CLI set options and environment.
|
639
637
|
# This only sets 'rvm_ruby_gem_home'
|
640
638
|
__rvm_gemset_select() {
|
641
|
-
|
639
|
+
command -v gem > /dev/null
|
642
640
|
if [[ $? -gt 0 ]] ; then return 0 ; fi # Stop if no 'gem' command is available.
|
643
641
|
|
644
642
|
rvm_ruby_global_gems_path="$rvm_gems_path/${rvm_ruby_string}${rvm_gemset_separator}global"
|
@@ -664,7 +662,7 @@ __rvm_gemset_select() {
|
|
664
662
|
else
|
665
663
|
if [[ ! -z "$rvm_ruby_string" ]] && [[ "$rvm_ruby_interpreter" != "system" ]] ; then
|
666
664
|
rvm_ruby_gem_home="$rvm_gems_path/$rvm_ruby_string"
|
667
|
-
elif [[ -z "$GEM_HOME" ]] && [[ ! -z "$(
|
665
|
+
elif [[ -z "$GEM_HOME" ]] && [[ ! -z "$(command -v gem)" ]] ; then
|
668
666
|
rvm_ruby_gem_home=$(gem env gemdir)
|
669
667
|
elif [[ ! -z "$GEM_HOME" ]] ; then
|
670
668
|
rvm_ruby_gem_home="$GEM_HOME"
|
@@ -674,8 +672,20 @@ __rvm_gemset_select() {
|
|
674
672
|
fi
|
675
673
|
if [[ -z "$rvm_gemset_name" ]] ; then unset rvm_gemset_name ; fi
|
676
674
|
else
|
677
|
-
|
678
|
-
|
675
|
+
gemset=$(echo "$rvm_ruby_gem_home" | awk -F'@' '{print $NF}')
|
676
|
+
if [[ -z "$rvm_ruby_string" ]] && [[ ! -z "${GEM_HOME/@*/}" ]] ; then
|
677
|
+
rvm_ruby_string=$(basename ${GEM_HOME/@*/})
|
678
|
+
fi
|
679
|
+
|
680
|
+
if [[ ! -z "$rvm_ruby_string" ]] ; then
|
681
|
+
if [[ -z "$rvm_ruby_gem_home" ]] || [[ ! -z "$gemset" ]] ; then
|
682
|
+
rvm_ruby_gem_home="$rvm_gems_path/${rvm_ruby_string}${rvm_gemset_separator}${rvm_gemset_name}"
|
683
|
+
elif [[ ! -z "$gemset" ]] && [[ "$rvm_gemset_name" != "$gemset" ]] ; then
|
684
|
+
rvm_ruby_gem_home="$rvm_gems_path/${rvm_ruby_string}${rvm_gemset_separator}${rvm_gemset_name}"
|
685
|
+
fi ; unset gemset
|
686
|
+
else
|
687
|
+
$rvm_scripts_path/log "error" "Gemsets can not be used with non rvm controlled rubies (currently)."
|
688
|
+
return 1
|
679
689
|
fi
|
680
690
|
fi
|
681
691
|
|
@@ -766,3 +776,15 @@ __rvm_mono_env() {
|
|
766
776
|
export PKG_CONFIG_PATH="$rvm_usr_path/lib/pkgconfig:$PKG_CONFIG_PATH"
|
767
777
|
PATH="$rvm_usr_path/bin:$PATH"
|
768
778
|
}
|
779
|
+
|
780
|
+
__rvm_Answer_to_the_Ultimate_Question_of_Life_the_Universe_and_Everything() {
|
781
|
+
for index in {1..750} ; do perl -e 'sleep 0.2'; echo -n '.' ; done ; printf "%d" 0x2A ; echo
|
782
|
+
}
|
783
|
+
|
784
|
+
__rvm_ultimate_question() {
|
785
|
+
echo "I do not know the Ultimate Question, "
|
786
|
+
echo "however I can help you build a more "
|
787
|
+
echo "powerful Ruby which can compute the "
|
788
|
+
echo "Ultimate Question."
|
789
|
+
}
|
790
|
+
|