rvm 0.1.24 → 0.1.26
Sign up to get free protection for your applications and to get access to all the features.
- data/README +1 -0
- data/binscripts/rvm-prompt +14 -7
- data/binscripts/rvm-update-head +11 -0
- data/binscripts/rvm-update-latest +21 -0
- data/config/db +4 -3
- data/config/md5 +5 -0
- data/examples/rvmrc +1 -1
- data/install +114 -27
- data/lib/VERSION.yml +1 -1
- data/rvm.gemspec +4 -3
- data/scripts/cd +2 -2
- data/scripts/cli +25 -57
- data/scripts/gemsets +11 -11
- data/scripts/initialize +2 -1
- data/scripts/install +114 -27
- data/scripts/manage +51 -32
- data/scripts/notes +0 -8
- data/scripts/package +2 -1
- data/scripts/rvm-install +114 -27
- data/scripts/selector +5 -5
- data/scripts/update +114 -27
- data/scripts/utility +47 -17
- metadata +6 -4
data/scripts/notes
CHANGED
@@ -3,14 +3,6 @@
|
|
3
3
|
system="$(uname)"
|
4
4
|
item="$(tput setaf 2)* $(tput sgr0)"
|
5
5
|
|
6
|
-
echo -e "\n$(tput setaf 6)**** NOTICE *************************************************************************************"
|
7
|
-
echo -e "* The rubies install path has moved to \$rvm_path/rubies/ instead of directly in \$rvm_path. *"
|
8
|
-
echo -e "* If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' *"
|
9
|
-
echo -e "* Gems are now per interpreter installation instead of per interpreter/version *"
|
10
|
-
echo -e "* so for example to upgrade an older install of 1.8.6 and preserve gems: *"
|
11
|
-
echo -e "* rm -rf ~/.rvm/gems/ruby-1.8.6-p383 ; mv ~/.rvm/gems/ruby/1.8.6 ~/.rvm/gems/ruby-1.8.6-p383 *"
|
12
|
-
echo -e "*************************************************************************************************$(tput sgr0)\n"
|
13
|
-
|
14
6
|
if [[ "Linux" = "$system" ]] ; then
|
15
7
|
for file in /etc/*-release ; do
|
16
8
|
release="( $(cat $file) )" ; break
|
data/scripts/package
CHANGED
@@ -92,7 +92,8 @@ zlib() {
|
|
92
92
|
}
|
93
93
|
|
94
94
|
ncurses() {
|
95
|
-
|
95
|
+
|
96
|
+
package_url="http://ftp.gnu.org/pub/gnu/ncurses"
|
96
97
|
package="ncurses" ; version="5.7" ; archive_format="tar.gz"
|
97
98
|
configure_flags="--with-shared --disable-rpath --without-debug --without-ada --enable-safe-sprintf --enable-sigwinch --without-progs"
|
98
99
|
install_package
|
data/scripts/rvm-install
CHANGED
@@ -13,9 +13,9 @@ source scripts/utility
|
|
13
13
|
usage() {
|
14
14
|
echo -e "
|
15
15
|
Usage:
|
16
|
-
${0}
|
16
|
+
${0} [options]
|
17
17
|
|
18
|
-
|
18
|
+
options:
|
19
19
|
--auto : Automatically update shell profile files.
|
20
20
|
--prefix : Installation prefix directory.
|
21
21
|
--help : Display help/usage (this) message
|
@@ -23,6 +23,15 @@ usage() {
|
|
23
23
|
"
|
24
24
|
}
|
25
25
|
|
26
|
+
spinner_counter=0
|
27
|
+
spinner() {
|
28
|
+
array=('/' '-' '\\' '|' '/' '-' '\\' '|')
|
29
|
+
index=$((($spinner_counter % 8)))
|
30
|
+
echo -e -n "\r${array[$index]}"
|
31
|
+
let "spinner_counter=spinner_counter+1"
|
32
|
+
which perl > /dev/null 2>&1 && perl -e 'sleep 0.5'
|
33
|
+
}
|
34
|
+
|
26
35
|
if echo "$*" | grep -q 'trace' ; then echo "$*" ; env | grep '^rvm_' ; set -x ; fi
|
27
36
|
|
28
37
|
while [[ $# -gt 0 ]] ; do
|
@@ -47,18 +56,25 @@ fi
|
|
47
56
|
if [[ -z "$rvm_path" ]] ; then rvm_path="${rvm_prefix}rvm" ; fi
|
48
57
|
|
49
58
|
source scripts/initialize
|
59
|
+
if grep -q 'scripts/rvm' $HOME/.bash* || grep -q 'scripts/rvm' $HOME/.zsh*; then
|
60
|
+
if [[ -d "$rvm_path" ]] && [[ -s "${rvm_path}/scripts/rvm" ]] ; then
|
61
|
+
export upgrade_flag=1
|
62
|
+
else
|
63
|
+
export upgrade_flag=0
|
64
|
+
fi
|
65
|
+
else
|
66
|
+
export upgrade_flag=0
|
67
|
+
fi
|
68
|
+
|
50
69
|
__rvm_initialize
|
51
70
|
|
52
71
|
#
|
53
|
-
# Setup
|
72
|
+
# Setup & Configuration
|
54
73
|
#
|
55
74
|
item="$(tput setaf 2)* $(tput sgr0)"
|
56
75
|
question="\n$(tput setaf 2)<?>$(tput sgr0)"
|
57
76
|
cwd=$(pwd)
|
58
77
|
source_path="${source_path:-$cwd}"
|
59
|
-
|
60
|
-
# State what is required to use rvm
|
61
|
-
echo -e "\nInstalling rvm to $rvm_path/ ..."
|
62
78
|
rvm_archives_path="${rvm_archives_path:-"$rvm_path/archives"}"
|
63
79
|
rvm_src_path="${rvm_src_path:-"$rvm_path/src"}"
|
64
80
|
rvm_log_path="${rvm_log_path:-"$rvm_path/log"}"
|
@@ -71,9 +87,25 @@ rvm_hooks_path="${rvm_hooks_path:-"$rvm_path/hooks"}"
|
|
71
87
|
rvm_tmp_path="${rvm_tmp_path:-"$rvm_path/tmp"}"
|
72
88
|
rvm_symlink_path="${rvm_symlink_path:-$rvm_prefix/bin}"
|
73
89
|
|
90
|
+
export rvm_gemset_separator="@" # TODO: Remove this after a while.
|
91
|
+
|
92
|
+
echo -e "\n$(tput setaf 2)RVM$(tput sgr0) - shell scripts which allow management of multiple ruby interpreters and environments."
|
93
|
+
echo -e "\n $(tput setaf 2)RTFM: $(tput sgr0) http://rvm.beginrescueend.com/"
|
94
|
+
echo -e "\n $(tput setaf 2)HELP: $(tput sgr0) http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)"
|
95
|
+
|
96
|
+
echo -e "\n********************************************************************************"
|
97
|
+
if [[ "$upgrade_flag" -eq 1 ]] ;then
|
98
|
+
echo -e -n " Upgrading the RVM installation in $rvm_path/"
|
99
|
+
else
|
100
|
+
echo -e -n " Installing rvm to $rvm_path/"
|
101
|
+
fi
|
102
|
+
|
103
|
+
spinner
|
104
|
+
|
74
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 $rvm_symlink_path $HOME/.gem/cache
|
75
106
|
|
76
107
|
for file in README LICENCE ; do
|
108
|
+
spinner
|
77
109
|
cp -f "$source_path/$file" "$rvm_path/"
|
78
110
|
done
|
79
111
|
|
@@ -81,19 +113,22 @@ done
|
|
81
113
|
# Scripts
|
82
114
|
#
|
83
115
|
for dir_name in config scripts examples lib hooks ; do
|
116
|
+
spinner
|
84
117
|
mkdir -p "$rvm_path/$dir_name"
|
85
118
|
if [[ -d "$source_path/$dir_name" ]] ; then
|
86
119
|
cp -Rf "$source_path/$dir_name" "$rvm_path"
|
87
120
|
fi
|
88
121
|
done ; unset dir_name
|
89
122
|
|
123
|
+
spinner
|
90
124
|
if [[ ! -s "$rvm_config_path/user" ]] ; then
|
91
125
|
mkdir -p "$rvm_config_path/"
|
92
126
|
echo '# Users settings file, overrides db file settings and persists across installs.' >> $rvm_config_path/user
|
93
127
|
fi
|
94
128
|
|
95
|
-
scripts="monitor match log install color db fetch log set package"
|
96
|
-
for script_name in $
|
129
|
+
scripts=("monitor" "match" "log" "install" "color" "db" "fetch" "log" "set" "package")
|
130
|
+
for script_name in $scripts ; do
|
131
|
+
spinner
|
97
132
|
chmod +x $rvm_scripts_path/$script_name
|
98
133
|
done
|
99
134
|
|
@@ -102,14 +137,17 @@ done
|
|
102
137
|
#
|
103
138
|
# Cleanse and purge...
|
104
139
|
for file in rvm-prompt rvm rvmsudo ; do
|
140
|
+
spinner && perl -e 'sleep 0.2'
|
105
141
|
rm -f "$rvm_bin_path/$file"
|
106
142
|
cp -f "$source_path/binscripts/$file" $rvm_bin_path/
|
107
143
|
done
|
144
|
+
spinner
|
108
145
|
chmod +x $rvm_bin_path/*
|
109
146
|
|
110
147
|
#
|
111
148
|
# RC Files
|
112
149
|
#
|
150
|
+
spinner
|
113
151
|
if [[ ! -z "$rvm_auto_flag" ]] ; then
|
114
152
|
echo -e "Checking rc files... ($rvm_rc_files)"
|
115
153
|
if [[ "$rvm_loaded_flag" != "1" ]] ; then
|
@@ -134,11 +172,13 @@ fi
|
|
134
172
|
#
|
135
173
|
rvm_rubies_path="${rvm_rubies_path:-"$rvm_path/rubies"}"
|
136
174
|
mkdir -p "$rvm_rubies_path/"
|
175
|
+
spinner
|
137
176
|
for ruby in $rvm_path/ruby-* $rvm_path/jruby-* $rvm_path/mput-* $rvm_path/rbx-* $rvm_path/maglev-* $rvm_path/ree-* ; do
|
138
177
|
if [[ -d "$ruby" ]] ; then
|
139
178
|
mv "$ruby" "$rvm_rubies_path/"
|
140
179
|
new_path="$rvm_rubies_path/$(basename $ruby)"
|
141
180
|
for file in gem rake ; do
|
181
|
+
spinner
|
142
182
|
if [[ -s "$new_path/bin/$file" ]] ; then
|
143
183
|
sed -i.orig -e '1,1s=.*=#!'"$new_path/bin/ruby=" "$new_path/bin/$file"
|
144
184
|
rm -f "$new_path/bin/$file.orig"
|
@@ -148,7 +188,46 @@ for ruby in $rvm_path/ruby-* $rvm_path/jruby-* $rvm_path/mput-* $rvm_path/rbx-*
|
|
148
188
|
fi
|
149
189
|
done
|
150
190
|
#
|
151
|
-
# End of migration.
|
191
|
+
# End of rubies migration.
|
192
|
+
#
|
193
|
+
|
194
|
+
#
|
195
|
+
# Migrate old gemset directories to new gemset pattern.
|
196
|
+
#
|
197
|
+
spinner
|
198
|
+
echo -e -n "\r*" # Stop spinner.
|
199
|
+
|
200
|
+
for gemset in $rvm_path/gems/*\%* ; do
|
201
|
+
new_path=${gemset/\%/${rvm_gemset_separator}}
|
202
|
+
if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
|
203
|
+
echo -e " Renaming $(basename $gemset) to $(basename $new_path) for new gemset separator."
|
204
|
+
mv $gemset $new_path
|
205
|
+
fi
|
206
|
+
done
|
207
|
+
|
208
|
+
for gemset in $rvm_path/gems/*\+* ; do
|
209
|
+
new_path=${gemset/\+/${rvm_gemset_separator}}
|
210
|
+
if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
|
211
|
+
echo -e " Renaming $(basename $gemset) to $(basename $new_path) for new gemset separator."
|
212
|
+
mv $gemset $new_path
|
213
|
+
fi
|
214
|
+
done
|
215
|
+
for gemset in $rvm_path/gems/*\@ ; do
|
216
|
+
new_path=$(echo $gemset | sed -e 's#\@$##')
|
217
|
+
if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
|
218
|
+
echo -e " Fixing: $(basename $gemset) to $(basename $new_path) for new gemset separator."
|
219
|
+
mv $gemset $new_path
|
220
|
+
fi
|
221
|
+
done
|
222
|
+
|
223
|
+
# Upgrade any default file.
|
224
|
+
if [[ -s $rvm_config_path/default ]] && grep -q '\%' $rvm_config_path/default ; then
|
225
|
+
sed -e "s#\%#${rvm_gemset_separator}#g" $rvm_config_path/default > $rvm_config_path/default.new
|
226
|
+
mv $rvm_config_path/default.new $rvm_config_path/default
|
227
|
+
fi
|
228
|
+
|
229
|
+
#
|
230
|
+
# End of gemset migration.
|
152
231
|
#
|
153
232
|
|
154
233
|
if [[ "root" = "$(whoami)" ]] ; then
|
@@ -160,11 +239,11 @@ if [[ "root" = "$(whoami)" ]] ; then
|
|
160
239
|
chmod +x $rvm_symlink_path/rvmsudo
|
161
240
|
fi
|
162
241
|
|
163
|
-
|
164
|
-
|
242
|
+
if [[ "$upgrade_flag" -eq 0 ]] ; then
|
243
|
+
echo -e "\n********************************************************************************"
|
244
|
+
./scripts/notes
|
245
|
+
fi
|
165
246
|
|
166
|
-
echo -e "$(tput setaf 2)RTFM: $(tput sgr0) http://rvm.beginrescueend.com/"
|
167
|
-
echo -e "\n$(tput setaf 2)HELP: $(tput sgr0) http://webchat.freenode.net/?channels=rvm "
|
168
247
|
echo -e "\n********************************************************************************"
|
169
248
|
name="$(awk -F= '/^[[:space:]]*name/{print $2}' ~/.gitconfig 2>/dev/null)"
|
170
249
|
echo -e "\n${name:-"$(whoami)"},\n"
|
@@ -177,20 +256,28 @@ echo -e "\n w$(tput setaf 2)⦿‿⦿$(tput sgr0)t!"
|
|
177
256
|
echo -e "\n ~ Wayne"
|
178
257
|
echo -e "\n********************************************************************************"
|
179
258
|
|
180
|
-
if [[ "
|
181
|
-
echo -e "\n$(tput setaf
|
182
|
-
echo -e "
|
183
|
-
echo -e "
|
184
|
-
echo -e "
|
185
|
-
echo -e "
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
fi
|
191
|
-
|
192
|
-
if [
|
193
|
-
|
259
|
+
if [[ "$upgrade_flag" -eq 1 ]] ; then
|
260
|
+
echo -e "\n$(tput setaf 6)**** NOTICE *************************************************************************************"
|
261
|
+
echo -e "* Gemset separator has changed, it is now @ and will remain unless any rubies error using it. *"
|
262
|
+
echo -e "* If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' *"
|
263
|
+
echo -e "*************************************************************************************************$(tput sgr0)\n"
|
264
|
+
echo -e "Upgrade of RVM in $rvm_path/ is complete.\n"
|
265
|
+
else
|
266
|
+
if [[ "root" != "$(whoami)" ]] ; then
|
267
|
+
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 and then .bash_profile for bash and .zshrc for zsh), after all path/variable settings:"
|
269
|
+
echo -e "\n if [[ -s $rvm_path/scripts/rvm ]] ; then source $rvm_path/scripts/rvm ; fi"
|
270
|
+
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 remove it and split your .bashrc"
|
272
|
+
echo -e "\n Put everything *except the return code line(s)* into your .bash_profile, and everything above that code in your .bashrc."
|
273
|
+
echo -e "\n Be *sure* to REMOVE the '&& return' statement line."
|
274
|
+
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 "\n4) Then $(tput setaf 1)CLOSE THIS SHELL$(tput sgr0) and open a new one in order to use rvm.\n"
|
276
|
+
fi
|
277
|
+
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. Please remove it and refactor your profiles to be correct. If you have questions about this please visit #rvm on irc.freenode.net.\n"
|
279
|
+
fi
|
280
|
+
echo -e "Installation of RVM to $rvm_path/ is complete.\n\n"
|
194
281
|
fi
|
195
282
|
|
196
283
|
exit 0
|
data/scripts/selector
CHANGED
@@ -46,7 +46,7 @@ __rvm_select() {
|
|
46
46
|
rvm_ruby_interpreter="rbx"
|
47
47
|
rvm_ruby_version=${rvm_ruby_version:-$(__rvm_db "rbx_version")}
|
48
48
|
rvm_ruby_repo_url=${rvm_rbx_repo_url:-$(__rvm_db "rubinius_repo_url")}
|
49
|
-
__rvm_db "
|
49
|
+
__rvm_db "rbx_${rvm_ruby_version}_${rvm_ruby_patch_level}_url" "rvm_url"
|
50
50
|
if [[ -z "$rvm_head_flag" ]] ; then
|
51
51
|
rvm_ruby_patch_level=${rvm_ruby_patch_level:-$(__rvm_db "rbx_patch_level")}
|
52
52
|
rvm_ruby_string="$rvm_ruby_interpreter-$rvm_ruby_version-p$rvm_ruby_patch_level"
|
@@ -210,7 +210,7 @@ __rvm_select() {
|
|
210
210
|
fi
|
211
211
|
|
212
212
|
if [[ ! -z "$rvm_gemset_name" ]] ; then
|
213
|
-
rvm_ruby_gem_home="${rvm_ruby_gem_home}
|
213
|
+
rvm_ruby_gem_home="${rvm_ruby_gem_home}${rvm_gemset_separator}${rvm_gemset_name}"
|
214
214
|
fi
|
215
215
|
|
216
216
|
rvm_ruby_selected_flag=1
|
@@ -295,7 +295,7 @@ __rvm_use() {
|
|
295
295
|
fi
|
296
296
|
|
297
297
|
if [[ ! -z "$rvm_verbose_flag" ]] ; then
|
298
|
-
$rvm_scripts_path/log "info" "Using $(basename $GEM_HOME | tr '-' ' ' | sed 's
|
298
|
+
$rvm_scripts_path/log "info" "Using $(basename $GEM_HOME | tr '-' ' ' | sed 's/'${rvm_gemset_separator}'/ with gemset /')"
|
299
299
|
fi
|
300
300
|
|
301
301
|
new_path="$(echo $PATH | tr ':' '\n' | awk '$0 !~ /rvm/' | paste -sd : -)"
|
@@ -367,9 +367,9 @@ __rvm_ruby_string() {
|
|
367
367
|
# * rvm_ruby_tag
|
368
368
|
# * rvm_ruby_patch
|
369
369
|
|
370
|
-
set_name=$(echo "$rvm_ruby_string" | awk -F
|
370
|
+
set_name=$(echo "$rvm_ruby_string" | awk -F${rvm_gemset_separator} '{print $2}')
|
371
371
|
if [[ ! -z "$set_name" ]] ; then rvm_gemset_name="$set_name" ; fi
|
372
|
-
ruby_string=$(echo "$rvm_ruby_string" | awk -F
|
372
|
+
ruby_string=$(echo "$rvm_ruby_string" | awk -F${rvm_gemset_separator} '{print $1}')
|
373
373
|
|
374
374
|
__rvm_unset_ruby_variables
|
375
375
|
|
data/scripts/update
CHANGED
@@ -13,9 +13,9 @@ source scripts/utility
|
|
13
13
|
usage() {
|
14
14
|
echo -e "
|
15
15
|
Usage:
|
16
|
-
${0}
|
16
|
+
${0} [options]
|
17
17
|
|
18
|
-
|
18
|
+
options:
|
19
19
|
--auto : Automatically update shell profile files.
|
20
20
|
--prefix : Installation prefix directory.
|
21
21
|
--help : Display help/usage (this) message
|
@@ -23,6 +23,15 @@ usage() {
|
|
23
23
|
"
|
24
24
|
}
|
25
25
|
|
26
|
+
spinner_counter=0
|
27
|
+
spinner() {
|
28
|
+
array=('/' '-' '\\' '|' '/' '-' '\\' '|')
|
29
|
+
index=$((($spinner_counter % 8)))
|
30
|
+
echo -e -n "\r${array[$index]}"
|
31
|
+
let "spinner_counter=spinner_counter+1"
|
32
|
+
which perl > /dev/null 2>&1 && perl -e 'sleep 0.5'
|
33
|
+
}
|
34
|
+
|
26
35
|
if echo "$*" | grep -q 'trace' ; then echo "$*" ; env | grep '^rvm_' ; set -x ; fi
|
27
36
|
|
28
37
|
while [[ $# -gt 0 ]] ; do
|
@@ -47,18 +56,25 @@ fi
|
|
47
56
|
if [[ -z "$rvm_path" ]] ; then rvm_path="${rvm_prefix}rvm" ; fi
|
48
57
|
|
49
58
|
source scripts/initialize
|
59
|
+
if grep -q 'scripts/rvm' $HOME/.bash* || grep -q 'scripts/rvm' $HOME/.zsh*; then
|
60
|
+
if [[ -d "$rvm_path" ]] && [[ -s "${rvm_path}/scripts/rvm" ]] ; then
|
61
|
+
export upgrade_flag=1
|
62
|
+
else
|
63
|
+
export upgrade_flag=0
|
64
|
+
fi
|
65
|
+
else
|
66
|
+
export upgrade_flag=0
|
67
|
+
fi
|
68
|
+
|
50
69
|
__rvm_initialize
|
51
70
|
|
52
71
|
#
|
53
|
-
# Setup
|
72
|
+
# Setup & Configuration
|
54
73
|
#
|
55
74
|
item="$(tput setaf 2)* $(tput sgr0)"
|
56
75
|
question="\n$(tput setaf 2)<?>$(tput sgr0)"
|
57
76
|
cwd=$(pwd)
|
58
77
|
source_path="${source_path:-$cwd}"
|
59
|
-
|
60
|
-
# State what is required to use rvm
|
61
|
-
echo -e "\nInstalling rvm to $rvm_path/ ..."
|
62
78
|
rvm_archives_path="${rvm_archives_path:-"$rvm_path/archives"}"
|
63
79
|
rvm_src_path="${rvm_src_path:-"$rvm_path/src"}"
|
64
80
|
rvm_log_path="${rvm_log_path:-"$rvm_path/log"}"
|
@@ -71,9 +87,25 @@ rvm_hooks_path="${rvm_hooks_path:-"$rvm_path/hooks"}"
|
|
71
87
|
rvm_tmp_path="${rvm_tmp_path:-"$rvm_path/tmp"}"
|
72
88
|
rvm_symlink_path="${rvm_symlink_path:-$rvm_prefix/bin}"
|
73
89
|
|
90
|
+
export rvm_gemset_separator="@" # TODO: Remove this after a while.
|
91
|
+
|
92
|
+
echo -e "\n$(tput setaf 2)RVM$(tput sgr0) - shell scripts which allow management of multiple ruby interpreters and environments."
|
93
|
+
echo -e "\n $(tput setaf 2)RTFM: $(tput sgr0) http://rvm.beginrescueend.com/"
|
94
|
+
echo -e "\n $(tput setaf 2)HELP: $(tput sgr0) http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)"
|
95
|
+
|
96
|
+
echo -e "\n********************************************************************************"
|
97
|
+
if [[ "$upgrade_flag" -eq 1 ]] ;then
|
98
|
+
echo -e -n " Upgrading the RVM installation in $rvm_path/"
|
99
|
+
else
|
100
|
+
echo -e -n " Installing rvm to $rvm_path/"
|
101
|
+
fi
|
102
|
+
|
103
|
+
spinner
|
104
|
+
|
74
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 $rvm_symlink_path $HOME/.gem/cache
|
75
106
|
|
76
107
|
for file in README LICENCE ; do
|
108
|
+
spinner
|
77
109
|
cp -f "$source_path/$file" "$rvm_path/"
|
78
110
|
done
|
79
111
|
|
@@ -81,19 +113,22 @@ done
|
|
81
113
|
# Scripts
|
82
114
|
#
|
83
115
|
for dir_name in config scripts examples lib hooks ; do
|
116
|
+
spinner
|
84
117
|
mkdir -p "$rvm_path/$dir_name"
|
85
118
|
if [[ -d "$source_path/$dir_name" ]] ; then
|
86
119
|
cp -Rf "$source_path/$dir_name" "$rvm_path"
|
87
120
|
fi
|
88
121
|
done ; unset dir_name
|
89
122
|
|
123
|
+
spinner
|
90
124
|
if [[ ! -s "$rvm_config_path/user" ]] ; then
|
91
125
|
mkdir -p "$rvm_config_path/"
|
92
126
|
echo '# Users settings file, overrides db file settings and persists across installs.' >> $rvm_config_path/user
|
93
127
|
fi
|
94
128
|
|
95
|
-
scripts="monitor match log install color db fetch log set package"
|
96
|
-
for script_name in $
|
129
|
+
scripts=("monitor" "match" "log" "install" "color" "db" "fetch" "log" "set" "package")
|
130
|
+
for script_name in $scripts ; do
|
131
|
+
spinner
|
97
132
|
chmod +x $rvm_scripts_path/$script_name
|
98
133
|
done
|
99
134
|
|
@@ -102,14 +137,17 @@ done
|
|
102
137
|
#
|
103
138
|
# Cleanse and purge...
|
104
139
|
for file in rvm-prompt rvm rvmsudo ; do
|
140
|
+
spinner && perl -e 'sleep 0.2'
|
105
141
|
rm -f "$rvm_bin_path/$file"
|
106
142
|
cp -f "$source_path/binscripts/$file" $rvm_bin_path/
|
107
143
|
done
|
144
|
+
spinner
|
108
145
|
chmod +x $rvm_bin_path/*
|
109
146
|
|
110
147
|
#
|
111
148
|
# RC Files
|
112
149
|
#
|
150
|
+
spinner
|
113
151
|
if [[ ! -z "$rvm_auto_flag" ]] ; then
|
114
152
|
echo -e "Checking rc files... ($rvm_rc_files)"
|
115
153
|
if [[ "$rvm_loaded_flag" != "1" ]] ; then
|
@@ -134,11 +172,13 @@ fi
|
|
134
172
|
#
|
135
173
|
rvm_rubies_path="${rvm_rubies_path:-"$rvm_path/rubies"}"
|
136
174
|
mkdir -p "$rvm_rubies_path/"
|
175
|
+
spinner
|
137
176
|
for ruby in $rvm_path/ruby-* $rvm_path/jruby-* $rvm_path/mput-* $rvm_path/rbx-* $rvm_path/maglev-* $rvm_path/ree-* ; do
|
138
177
|
if [[ -d "$ruby" ]] ; then
|
139
178
|
mv "$ruby" "$rvm_rubies_path/"
|
140
179
|
new_path="$rvm_rubies_path/$(basename $ruby)"
|
141
180
|
for file in gem rake ; do
|
181
|
+
spinner
|
142
182
|
if [[ -s "$new_path/bin/$file" ]] ; then
|
143
183
|
sed -i.orig -e '1,1s=.*=#!'"$new_path/bin/ruby=" "$new_path/bin/$file"
|
144
184
|
rm -f "$new_path/bin/$file.orig"
|
@@ -148,7 +188,46 @@ for ruby in $rvm_path/ruby-* $rvm_path/jruby-* $rvm_path/mput-* $rvm_path/rbx-*
|
|
148
188
|
fi
|
149
189
|
done
|
150
190
|
#
|
151
|
-
# End of migration.
|
191
|
+
# End of rubies migration.
|
192
|
+
#
|
193
|
+
|
194
|
+
#
|
195
|
+
# Migrate old gemset directories to new gemset pattern.
|
196
|
+
#
|
197
|
+
spinner
|
198
|
+
echo -e -n "\r*" # Stop spinner.
|
199
|
+
|
200
|
+
for gemset in $rvm_path/gems/*\%* ; do
|
201
|
+
new_path=${gemset/\%/${rvm_gemset_separator}}
|
202
|
+
if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
|
203
|
+
echo -e " Renaming $(basename $gemset) to $(basename $new_path) for new gemset separator."
|
204
|
+
mv $gemset $new_path
|
205
|
+
fi
|
206
|
+
done
|
207
|
+
|
208
|
+
for gemset in $rvm_path/gems/*\+* ; do
|
209
|
+
new_path=${gemset/\+/${rvm_gemset_separator}}
|
210
|
+
if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
|
211
|
+
echo -e " Renaming $(basename $gemset) to $(basename $new_path) for new gemset separator."
|
212
|
+
mv $gemset $new_path
|
213
|
+
fi
|
214
|
+
done
|
215
|
+
for gemset in $rvm_path/gems/*\@ ; do
|
216
|
+
new_path=$(echo $gemset | sed -e 's#\@$##')
|
217
|
+
if [[ -d "$gemset" ]] && [[ ! -d "$new_path" ]] ; then
|
218
|
+
echo -e " Fixing: $(basename $gemset) to $(basename $new_path) for new gemset separator."
|
219
|
+
mv $gemset $new_path
|
220
|
+
fi
|
221
|
+
done
|
222
|
+
|
223
|
+
# Upgrade any default file.
|
224
|
+
if [[ -s $rvm_config_path/default ]] && grep -q '\%' $rvm_config_path/default ; then
|
225
|
+
sed -e "s#\%#${rvm_gemset_separator}#g" $rvm_config_path/default > $rvm_config_path/default.new
|
226
|
+
mv $rvm_config_path/default.new $rvm_config_path/default
|
227
|
+
fi
|
228
|
+
|
229
|
+
#
|
230
|
+
# End of gemset migration.
|
152
231
|
#
|
153
232
|
|
154
233
|
if [[ "root" = "$(whoami)" ]] ; then
|
@@ -160,11 +239,11 @@ if [[ "root" = "$(whoami)" ]] ; then
|
|
160
239
|
chmod +x $rvm_symlink_path/rvmsudo
|
161
240
|
fi
|
162
241
|
|
163
|
-
|
164
|
-
|
242
|
+
if [[ "$upgrade_flag" -eq 0 ]] ; then
|
243
|
+
echo -e "\n********************************************************************************"
|
244
|
+
./scripts/notes
|
245
|
+
fi
|
165
246
|
|
166
|
-
echo -e "$(tput setaf 2)RTFM: $(tput sgr0) http://rvm.beginrescueend.com/"
|
167
|
-
echo -e "\n$(tput setaf 2)HELP: $(tput sgr0) http://webchat.freenode.net/?channels=rvm "
|
168
247
|
echo -e "\n********************************************************************************"
|
169
248
|
name="$(awk -F= '/^[[:space:]]*name/{print $2}' ~/.gitconfig 2>/dev/null)"
|
170
249
|
echo -e "\n${name:-"$(whoami)"},\n"
|
@@ -177,20 +256,28 @@ echo -e "\n w$(tput setaf 2)⦿‿⦿$(tput sgr0)t!"
|
|
177
256
|
echo -e "\n ~ Wayne"
|
178
257
|
echo -e "\n********************************************************************************"
|
179
258
|
|
180
|
-
if [[ "
|
181
|
-
echo -e "\n$(tput setaf
|
182
|
-
echo -e "
|
183
|
-
echo -e "
|
184
|
-
echo -e "
|
185
|
-
echo -e "
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
fi
|
191
|
-
|
192
|
-
if [
|
193
|
-
|
259
|
+
if [[ "$upgrade_flag" -eq 1 ]] ; then
|
260
|
+
echo -e "\n$(tput setaf 6)**** NOTICE *************************************************************************************"
|
261
|
+
echo -e "* Gemset separator has changed, it is now @ and will remain unless any rubies error using it. *"
|
262
|
+
echo -e "* If you encounter any issues with a ruby your best bet is to 'rvm remove X ; rvm install X' *"
|
263
|
+
echo -e "*************************************************************************************************$(tput sgr0)\n"
|
264
|
+
echo -e "Upgrade of RVM in $rvm_path/ is complete.\n"
|
265
|
+
else
|
266
|
+
if [[ "root" != "$(whoami)" ]] ; then
|
267
|
+
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 and then .bash_profile for bash and .zshrc for zsh), after all path/variable settings:"
|
269
|
+
echo -e "\n if [[ -s $rvm_path/scripts/rvm ]] ; then source $rvm_path/scripts/rvm ; fi"
|
270
|
+
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 remove it and split your .bashrc"
|
272
|
+
echo -e "\n Put everything *except the return code line(s)* into your .bash_profile, and everything above that code in your .bashrc."
|
273
|
+
echo -e "\n Be *sure* to REMOVE the '&& return' statement line."
|
274
|
+
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 "\n4) Then $(tput setaf 1)CLOSE THIS SHELL$(tput sgr0) and open a new one in order to use rvm.\n"
|
276
|
+
fi
|
277
|
+
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. Please remove it and refactor your profiles to be correct. If you have questions about this please visit #rvm on irc.freenode.net.\n"
|
279
|
+
fi
|
280
|
+
echo -e "Installation of RVM to $rvm_path/ is complete.\n\n"
|
194
281
|
fi
|
195
282
|
|
196
283
|
exit 0
|