rvm 0.0.34 → 0.0.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/config/db +20 -0
- data/rvm.gemspec +51 -0
- data/scripts/rvm +10 -1230
- data/scripts/rvm-cli +230 -0
- data/scripts/rvm-install +2 -7
- data/scripts/rvm-ruby-installer +346 -0
- data/scripts/rvm-selector +188 -0
- data/scripts/rvm-update +12 -13
- data/scripts/rvm-utility +459 -0
- metadata +8 -3
- data/config/cache +0 -23
data/scripts/rvm-cli
ADDED
@@ -0,0 +1,230 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
function __rvm_parse-args {
|
4
|
+
while [ $# -gt 0 ] ; do
|
5
|
+
rvm_token="$1" ; shift
|
6
|
+
case "$rvm_token" in
|
7
|
+
install|uninstall|path|info|setup|version|srcdir|list|symlinks|reset|debug|reload|usage|help|implode|update)
|
8
|
+
rvm_action=$rvm_token
|
9
|
+
;;
|
10
|
+
use)
|
11
|
+
rvm_action=$rvm_token
|
12
|
+
if [ "$1" = "default" ] ; then
|
13
|
+
rvm_ruby_interpreter="system" ; shift
|
14
|
+
elif [ -z "$1" ] ; then
|
15
|
+
rvm_ruby_interpreter="system"
|
16
|
+
fi
|
17
|
+
;;
|
18
|
+
|
19
|
+
ruby|jruby|ree|macruby|rbx|rubinius|default|all)
|
20
|
+
rvm_ruby_interpreter="$rvm_token"
|
21
|
+
rvm_action="${rvm_action:-use}"
|
22
|
+
;;
|
23
|
+
|
24
|
+
gemdir)
|
25
|
+
rvm_action=$rvm_token
|
26
|
+
|
27
|
+
if [ "$1" = "system" ] ; then
|
28
|
+
rvm_ruby_interpreter="system" ; shift
|
29
|
+
fi
|
30
|
+
|
31
|
+
if [ "$1" = "user" ] ; then
|
32
|
+
rvm_ruby_interpreter="user" ; shift
|
33
|
+
fi
|
34
|
+
|
35
|
+
rvm_ruby_interpreter="${rvm_ruby_interpreter:-current}"
|
36
|
+
;;
|
37
|
+
|
38
|
+
gemdup)
|
39
|
+
rvm_action=$rvm_token
|
40
|
+
if [ -z "$1" ] ; then
|
41
|
+
rvm_ruby_interpreter="default"
|
42
|
+
elif [ "$1" = "system" ] ; then
|
43
|
+
rvm_ruby_interpreter=$1 ; shift
|
44
|
+
elif [ "$1" = "default" ] ; then
|
45
|
+
rvm_ruby_interpreter=$1 ; shift
|
46
|
+
else
|
47
|
+
rvm_ruby_interpreter=$1 ; shift
|
48
|
+
rvm_ruby_version=$2 ; shift
|
49
|
+
fi
|
50
|
+
;;
|
51
|
+
|
52
|
+
do|rubydo)
|
53
|
+
rvm_action=$rvm_token
|
54
|
+
temp=$(echo $1 | awk '{print substr($1, 0, 1)}')
|
55
|
+
if [ "$temp" != "-" ] ; then
|
56
|
+
if [ ! -z "$(echo $temp | grep '[0-9]')" ] ; then
|
57
|
+
rvm_ruby_version=$(echo "$1" | tr ',' ' ') ; shift
|
58
|
+
else
|
59
|
+
rvm_ruby_version=$1 ; shift
|
60
|
+
fi
|
61
|
+
else
|
62
|
+
unset rvm_ruby_version
|
63
|
+
fi
|
64
|
+
unset rvm_ruby_interpreter
|
65
|
+
;;
|
66
|
+
|
67
|
+
1.8|1.8.0|1.8.1|1.8.2|1.8.3|1.8.4|1.8.5|1.8.6|1.8.7|1.9|1.9.1|1.9.2)
|
68
|
+
rvm_ruby_interpreter="ruby"
|
69
|
+
rvm_ruby_version="$rvm_token"
|
70
|
+
rvm_action="${rvm_action:-use}"
|
71
|
+
;;
|
72
|
+
1.2.0|1.3.1)
|
73
|
+
rvm_ruby_interpreter="jruby"
|
74
|
+
rvm_ruby_version="$rvm_token"
|
75
|
+
rvm_action="${rvm_action:-use}"
|
76
|
+
;;
|
77
|
+
|
78
|
+
-v|--version)
|
79
|
+
if [ -z "$1" ] ; then
|
80
|
+
rvm_action="version"
|
81
|
+
else
|
82
|
+
rvm_ruby_version="$1"
|
83
|
+
fi
|
84
|
+
shift
|
85
|
+
;;
|
86
|
+
|
87
|
+
-t|--tag) rvm_ruby_tag="$1";
|
88
|
+
rvm_action="${rvm_action:-use}"
|
89
|
+
shift ;;
|
90
|
+
-r|--rev) rvm_ruby_rev="$1";
|
91
|
+
rvm_action="${rvm_action:-use}"
|
92
|
+
shift ;;
|
93
|
+
-b|--branch) rvm_ruby_rev="$1";
|
94
|
+
rvm_action="${rvm_action:-use}"
|
95
|
+
shift ;;
|
96
|
+
|
97
|
+
|
98
|
+
-P|--prefix) rvm_prefix_path="$1" ; shift ;;
|
99
|
+
-B|--bin) rvm_bin_path="$1" ; shift ;;
|
100
|
+
-S|--source) rvm_source_path="$1" ; shift ;;
|
101
|
+
-A|--archive) rvm_archives_path="$1" ; shift ;;
|
102
|
+
-G|--gems) rvm_gem_path="$1" ; shift ;;
|
103
|
+
-C|--configure)
|
104
|
+
if [ ! -z "$1" ] ; then
|
105
|
+
rvm_ruby_configure="$(echo $1 | tr ',' ' ')"
|
106
|
+
shift
|
107
|
+
else
|
108
|
+
rvm_action="error"
|
109
|
+
rvm_error_message="--configure *must* be followed by configure flags."
|
110
|
+
break;
|
111
|
+
fi
|
112
|
+
;;
|
113
|
+
--re-configure) rvm_re_configure=1 ;;
|
114
|
+
-M|--make) rvm_ruby_make="$1" ; shift ;;
|
115
|
+
-I|--make-install) rvm_ruby_make_install="$1"; shift ;;
|
116
|
+
-l|--level) rvm_ruby_patch_level="$1" ; shift ;;
|
117
|
+
-n|--nice) rvm_niceness="$1" ; shift ;;
|
118
|
+
-f|--file) rvm_ruby_args="$1" ; shift ;;
|
119
|
+
-h|--help) rvm_action=help ; shift ;;
|
120
|
+
-d|--default) rvm_set_default=1 ;;
|
121
|
+
--head) rvm_ruby_rev="head" ;;
|
122
|
+
--trace|--debug) rvm_debug=1 ;;
|
123
|
+
--force) rvm_force=1 ;;
|
124
|
+
--set-prompt) rvm_set_prompt=1 ;;
|
125
|
+
--all) rvm_all=1 ; shift ;;
|
126
|
+
-m|--gem-set) rvm_gem_set_name="$1" ; shift ;;
|
127
|
+
--rm-gem-set) rvm_gem_set_name_rm="$1" ; shift ;;
|
128
|
+
--jit) rvm_rubinius_jit="RBX_LLVM=1" ;;
|
129
|
+
|
130
|
+
default|system)
|
131
|
+
rvm_action="use"
|
132
|
+
rvm_ruby_interpreter="system"
|
133
|
+
;;
|
134
|
+
*)
|
135
|
+
rvm_action="error"
|
136
|
+
rvm_error_message="Unrecognized command line argument(s): '$rvm_token $*'"
|
137
|
+
break;
|
138
|
+
esac
|
139
|
+
if [ ! -z "$rvm_ruby_args" -o ! -z "$rvm_error_message" ] ; then break; fi
|
140
|
+
done
|
141
|
+
|
142
|
+
if [ ! -z "$rvm_error_message" ] ; then popd 2> /dev/null ; return 1 ; fi
|
143
|
+
if [ -z "$rvm_debug" ] ; then set +x ; else set -x ; fi
|
144
|
+
|
145
|
+
}
|
146
|
+
|
147
|
+
function rvm {
|
148
|
+
|
149
|
+
__rvm_cleanup-variables
|
150
|
+
__rvm_load-rvmrc
|
151
|
+
__rvm_initialize
|
152
|
+
__rvm_load-defaults
|
153
|
+
__rvm_parse-args $*
|
154
|
+
|
155
|
+
case "$rvm_action" in
|
156
|
+
install) __rvm_install-ruby $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
|
157
|
+
uninstall) __rvm_uninstall $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
|
158
|
+
use) __rvm_use $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
|
159
|
+
list) __rvm_list ;;
|
160
|
+
gemdir) __rvm_gem-dir $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
|
161
|
+
srcdir) __rvm_src-dir $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
|
162
|
+
gemdup) __rvm_gem-dup $rvm_ruby_interpreter $rvm_ruby_version $rvm_ruby_patch_level ;;
|
163
|
+
symlinks) __rvm_symlinks ;;
|
164
|
+
version) __rvm_version ;;
|
165
|
+
rubydo)
|
166
|
+
if [ ! -z "$rvm_ruby_version" ] ; then
|
167
|
+
rvm_ruby_versions=$(echo $rvm_ruby_version | tr ',' ' ')
|
168
|
+
for rvm_ruby_version in $rvm_ruby_versions ; do
|
169
|
+
temp=$(echo $rvm_ruby_version | awk '{print substr($1, 0, 1)}')
|
170
|
+
if [ ! -z "$(echo $temp | grep '[0-9]')" ] ; then
|
171
|
+
rvm_ruby_interpreter="ruby"
|
172
|
+
else
|
173
|
+
rvm_ruby_interpreter="$rvm_ruby_version"
|
174
|
+
unset rvm_ruby_version
|
175
|
+
fi
|
176
|
+
unset temp
|
177
|
+
__rvm_select $rvm_ruby_interpreter $rvm_ruby_version
|
178
|
+
|
179
|
+
rvm_command="$rvm_ruby_binary $rvm_ruby_args"
|
180
|
+
echo "$(basename $rvm_ruby_binary):"
|
181
|
+
eval $rvm_command
|
182
|
+
unset rvm_ruby_interpreter rvm_ruby_patch_level rvm_ruby_version rvm_ruby_package_name rvm_ruby_home rvm_ruby_irbrc rvm_ruby_binary
|
183
|
+
done
|
184
|
+
else # all
|
185
|
+
rvm_ruby_versions=`/bin/ls $rvm_install_path/bin/ruby-*`
|
186
|
+
for rvm_ruby_binary in $rvm_ruby_versions ; do
|
187
|
+
if [ -x $rvm_ruby_binary ] ; then
|
188
|
+
rvm_command="$rvm_ruby_binary $rvm_ruby_args"
|
189
|
+
echo "$(basename $rvm_ruby_binary):"
|
190
|
+
eval $rvm_command
|
191
|
+
fi
|
192
|
+
done
|
193
|
+
fi
|
194
|
+
;;
|
195
|
+
reset) __rvm_reset ;;
|
196
|
+
# TODO: how can we use bin_path here for reload, default file?
|
197
|
+
reload) source ~/.rvm/scripts/rvm ;;
|
198
|
+
implode) __rvm_implode ;;
|
199
|
+
update)
|
200
|
+
if [ "$rvm_ruby_rev" = "head" ] ; then
|
201
|
+
if [ -d $rvm_source_path/rvm/.git ] ; then
|
202
|
+
cd $rvm_source_path/rvm/ && git pull origin master
|
203
|
+
else
|
204
|
+
cd $rvm_source_path && git clone git://github.com/wayneeseguin/rvm.git && cd rvm/
|
205
|
+
fi
|
206
|
+
./scripts/rvm-update
|
207
|
+
else
|
208
|
+
# TODO: rvm_install_path:
|
209
|
+
gem install rvm --no-rdoc --no-ri -q && rvm-update && source ~/.rvm/scripts/rvm
|
210
|
+
fi
|
211
|
+
;;
|
212
|
+
error) __rvm_log "fail" "$rvm_error_message ( see: rvm usage )" ; popd 2> /dev/null ; return 1; ;;
|
213
|
+
info|debug)
|
214
|
+
__rvm_version
|
215
|
+
__rvm_info
|
216
|
+
if [ "$rvm_action" = "debug" ] ; then __rvm_debug ; fi
|
217
|
+
return 0
|
218
|
+
;;
|
219
|
+
usage|help) __rvm_usage ;;
|
220
|
+
*)
|
221
|
+
if [ ! -z "$rvm_action" ] ; then
|
222
|
+
__rvm_log "fail" "unknown action '$rvm_action'"
|
223
|
+
else
|
224
|
+
__rvm_usage
|
225
|
+
fi
|
226
|
+
return 1
|
227
|
+
esac
|
228
|
+
|
229
|
+
if [ "$rvm_debug" = "1" ] ; then set +x ; unset rvm_debug ; fi
|
230
|
+
}
|
data/scripts/rvm-install
CHANGED
@@ -23,18 +23,13 @@ done
|
|
23
23
|
|
24
24
|
for file in ~/.bash_profile ~/.bashrc ~/.zshrc ; do
|
25
25
|
if [ -s $file ] ; then
|
26
|
-
echo -e "\n\033[0;
|
26
|
+
echo -e "\n\033[0;32m<i>\033[0m Ensuring that rvm script location in $file is scripts/rvm not bin/rvm"
|
27
27
|
actual_file=$(file ~/.zshrc | awk '{print $5}')
|
28
28
|
sed -i.orig 's/rvm\/bin\/rvm/rvm\/scripts\/rvm/g' $actual_file
|
29
29
|
fi
|
30
30
|
done
|
31
31
|
|
32
|
-
|
33
|
-
echo -e "\n\033[0;33m<w>\033[0m Removing old rvm file from ~/.rvm/bin/rvm"
|
34
|
-
rm -f ~/.rvm/bin/rvm
|
35
|
-
fi
|
36
|
-
|
37
|
-
for dir in scripts examples ; do
|
32
|
+
for dir in config scripts examples ; do
|
38
33
|
mkdir -p $rvm_dir/$dir
|
39
34
|
for file in `/bin/ls $source_dir/$dir/`; do
|
40
35
|
cp $source_dir/$dir/$file $rvm_dir/$dir/$file
|
@@ -0,0 +1,346 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
#
|
4
|
+
# Installer
|
5
|
+
#
|
6
|
+
|
7
|
+
function __rvm_install-source {
|
8
|
+
|
9
|
+
if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
|
10
|
+
|
11
|
+
__rvm_log "info" "Installing Ruby from source to: $rvm_ruby_home"
|
12
|
+
mkdir -p $rvm_ruby_log_path
|
13
|
+
|
14
|
+
pushd $rvm_source_path > /dev/null
|
15
|
+
|
16
|
+
if [ ! -z "$rvm_force" ] ; then
|
17
|
+
rm -rf $rvm_ruby_home
|
18
|
+
rm -rf $rvm_ruby_src_path
|
19
|
+
fi
|
20
|
+
|
21
|
+
if [ -z "$rvm_ruby_tag" -a -z "$rvm_ruby_rev" ] ; then
|
22
|
+
if [ ! -d $rvm_ruby_src_path ] ; then
|
23
|
+
rvm_url="${rvm_url:-"ftp://ftp.ruby-lang.org/pub/ruby/1.$rvm_major_version/$rvm_ruby_package_name.tar.gz"}"
|
24
|
+
__rvm_log "info" "\tDownloading $rvm_ruby_package_name, this may take a while depending on your connection..."
|
25
|
+
__rvm_fetch $rvm_url
|
26
|
+
__rvm_log "info" "\tExtracting $rvm_ruby_package_name ..."
|
27
|
+
mkdir -p $rvm_ruby_src_path # Is this line necessary considering -C below? v
|
28
|
+
__rvm_run "extract" tar xzf $rvm_archives_path/$rvm_ruby_package_name.tar.gz -C $rvm_source_path
|
29
|
+
fi
|
30
|
+
else
|
31
|
+
__rvm_log "info" "\tRetrieving Ruby from $rvm_url"
|
32
|
+
if [ ! -z "`echo $rvm_url | grep '^git'`" ] ; then
|
33
|
+
if [ -d "$rvm_ruby_src_path/.git" ] ; then
|
34
|
+
cd $rvm_ruby_src_path
|
35
|
+
if [ -z "$rvm_ruby_rev" ] ; then
|
36
|
+
git pull origin master
|
37
|
+
else
|
38
|
+
git checkout ${rvm_ruby_rev:-HEAD}
|
39
|
+
fi
|
40
|
+
else
|
41
|
+
git clone --depth 1 $rvm_ruby_repo_url $rvm_ruby_src_path
|
42
|
+
fi
|
43
|
+
else
|
44
|
+
if [ -z "$rvm_ruby_rev" ] ; then
|
45
|
+
# TODO: Check if tag v is valid
|
46
|
+
rvm_url=$rvm_ruby_repo_url/tags/$rvm_ruby_tag
|
47
|
+
rvm_rev=""
|
48
|
+
else
|
49
|
+
if [ "$rvm_ruby_rev" = "head" -o "$rvm_ruby_rev" = "trunk" ] ; then
|
50
|
+
rvm_url=$rvm_ruby_repo_url/branches/ruby_1_${rvm_major_version}_${rvm_minor_version}
|
51
|
+
rvm_rev=""
|
52
|
+
else
|
53
|
+
rvm_url=$rvm_ruby_repo_url/branches/ruby_1_${rvm_major_version}_${rvm_minor_version}
|
54
|
+
rvm_rev="-r $rvm_ruby_rev"
|
55
|
+
fi
|
56
|
+
fi
|
57
|
+
|
58
|
+
if [ -d "$rvm_ruby_src_path/.svn" ] ; then
|
59
|
+
cd $rvm_ruby_src_path
|
60
|
+
svn checkout -q $rvm_rev
|
61
|
+
else
|
62
|
+
svn checkout -q $rvm_rev --force $rvm_url $rvm_ruby_src_path
|
63
|
+
fi
|
64
|
+
fi
|
65
|
+
fi
|
66
|
+
|
67
|
+
cd $rvm_ruby_src_path
|
68
|
+
if [ $? -gt 0 ] ; then __rvm_log "error" "There was an error, please check $rvm_ruby_log_path/*.error.log" ; popd 2> /dev/null ; return 1 ; fi
|
69
|
+
|
70
|
+
if [ ! -s "$rvm_ruby_src_path/configure" -a "$rvm_ruby_interpreter" = "ruby" ] ; then
|
71
|
+
rvm_autoconf=`which autoconf`
|
72
|
+
if [ $? -ne 0 ] ; then __rvm_log "fail" "rvm expects autoconf" ; fi
|
73
|
+
__rvm_run "autoconf" $rvm_autoconf
|
74
|
+
fi
|
75
|
+
|
76
|
+
if [ $? -gt 0 ] ; then __rvm_log "error" "There was an error, please check $rvm_ruby_log_path/*.error.log" ; popd 2> /dev/null ; return 1 ; fi
|
77
|
+
|
78
|
+
if [ -s ./Makefile -a -z "$rvm_re_configure" ] ; then
|
79
|
+
__rvm_log "warn" "\tSkipping configure step, Makefile exists so configure must have already been run."
|
80
|
+
elif [ -s ./configure ] ; then
|
81
|
+
__rvm_log "info" "\tConfiguring $rvm_ruby_package_name using $rvm_ruby_configure, this may take a while depending on your cpu(s)..."
|
82
|
+
__rvm_run "configure" ./configure --prefix=$rvm_ruby_home $rvm_ruby_configure
|
83
|
+
else
|
84
|
+
__rvm_log "warn" "\tSkipping configure step, 'configure' script does not exist, did autoconf not run successfully?"
|
85
|
+
fi
|
86
|
+
|
87
|
+
__rvm_log "info" "\tCompiling $rvm_ruby_package_name, this may take a while, depending on your cpu(s)..."
|
88
|
+
if [ -z "$rvm_ruby_make" ] ; then
|
89
|
+
__rvm_run "make" make
|
90
|
+
else
|
91
|
+
__rvm_run "make" $rvm_ruby_make
|
92
|
+
fi
|
93
|
+
|
94
|
+
if [ -z "$rvm_ruby_make" ] ; then
|
95
|
+
__rvm_log "info" "\tInstalling $rvm_ruby_package_name"
|
96
|
+
__rvm_run "install" make install
|
97
|
+
else
|
98
|
+
__rvm_run "install" $rvm_ruby_make_install
|
99
|
+
fi
|
100
|
+
__rvm_run "chmod.bin" chmod +x $rvm_ruby_home/bin/*
|
101
|
+
|
102
|
+
__rvm_bin_scripts
|
103
|
+
__rvm_log "info" "Installation of $rvm_ruby_package_name is complete."
|
104
|
+
|
105
|
+
__rvm_log "info" "\tInstalling rubygems dedicated to $rvm_ruby_package_name..."
|
106
|
+
rvm_gem_package_name="rubygems-1.3.5"
|
107
|
+
rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
|
108
|
+
if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
|
109
|
+
cd $rvm_source_path/$rvm_gem_package_name
|
110
|
+
else
|
111
|
+
__rvm_fetch $rvm_gem_url
|
112
|
+
mkdir -p $rvm_source_path/$rvm_gem_package_name
|
113
|
+
__rvm_run "rubygems.extract" tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
|
114
|
+
fi
|
115
|
+
# Well this is fun... fix nil error on require_paths:
|
116
|
+
sed -i.orig "s/require_paths\.join/require_paths.to_a.join/" $rvm_source_path/$rvm_gem_package_name/lib/rubygems/gem_path_searcher.rb
|
117
|
+
|
118
|
+
__rvm_run "rubygems.install" $rvm_ruby_binary $rvm_source_path/$rvm_gem_package_name/setup.rb
|
119
|
+
popd 2> /dev/null
|
120
|
+
|
121
|
+
for binary in gem irb erb ri rdoc testrb rake ; do
|
122
|
+
if [ -x $rvm_ruby_src_path/bin/$binary ] ; then
|
123
|
+
cp $rvm_ruby_src_path/bin/$binary $rvm_ruby_home/bin/$binary
|
124
|
+
string="ENV['GEM_HOME']=ENV['GEM_HOME'] || '$rvm_gem_home'\nENV['PATH']='$rvm_ruby_home/bin:$rvm_gem_home/bin:' + ENV['PATH']"
|
125
|
+
awk "NR==2 {print \"$string\"} {print}" $rvm_ruby_home/bin/$binary > $rvm_ruby_home/bin/$binary.new
|
126
|
+
mv $rvm_ruby_home/bin/$binary.new $rvm_ruby_home/bin/$binary
|
127
|
+
chmod +x $rvm_ruby_home/bin/$binary
|
128
|
+
else
|
129
|
+
__rvm_log "warn" "$rvm_ruby_home/bin/$binary is missing"
|
130
|
+
fi
|
131
|
+
done
|
132
|
+
|
133
|
+
for rvm_gem_name in rake ; do
|
134
|
+
__rvm_log "info" "Installing $rvm_gem_name"
|
135
|
+
__rvm_run "gems" $rvm_ruby_home/bin/gem install $rvm_gem_name --no-rdoc --no-ri -q
|
136
|
+
done
|
137
|
+
|
138
|
+
__rvm_log "info" "Installation of rubygems for $rvm_ruby_package_name is complete."
|
139
|
+
if [ -x $rvm_gem_home/bin/$binary ] ; then
|
140
|
+
string="ENV['GEM_HOME']=ENV['GEM_HOME'] || '$rvm_gem_home'\nENV['PATH']='$rvm_ruby_home/bin:$rvm_gem_home/bin:' + ENV['PATH']"
|
141
|
+
mv $rvm_gem_home/bin/$binary $rvm_gem_home/bin/$binary.orig
|
142
|
+
awk "NR==2 {print \"$string\"} {print}" $rvm_gem_home/bin/$binary.orig > $rvm_gem_home/bin/$binary
|
143
|
+
chmod +x $rvm_gem_home/bin/$binary
|
144
|
+
else
|
145
|
+
__rvm_log "warn" "$rvm_gem_home/bin/$binary is missing"
|
146
|
+
fi
|
147
|
+
|
148
|
+
binary=rake
|
149
|
+
if [ -x $rvm_ruby_home/bin/$binary ] ; then
|
150
|
+
mv $rvm_ruby_home/bin/$binary $rvm_gem_home/bin/$binary.orig
|
151
|
+
awk "NR==2 {print \"$string\"} {print}" $rvm_gem_home/bin/$binary.orig > $rvm_gem_home/bin/$binary
|
152
|
+
else
|
153
|
+
__rvm_log "warn" "$rvm_gem_home/bin/$binary is missing."
|
154
|
+
fi
|
155
|
+
unset binary
|
156
|
+
}
|
157
|
+
|
158
|
+
function __rvm_install-ruby {
|
159
|
+
|
160
|
+
if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
|
161
|
+
if [ ! -z "$RUBYOPT" ] ; then ruby_options=$RUBYOPT ; unset RUBYOPT ; fi
|
162
|
+
|
163
|
+
case "$rvm_ruby_interpreter" in
|
164
|
+
|
165
|
+
macruby)
|
166
|
+
if [ "`uname`" = "Darwin" ] ; then
|
167
|
+
rvm_ruby_repo_url=$rvm_macruby_repo_url
|
168
|
+
rvm_ruby_configure=""
|
169
|
+
rvm_ruby_make="rake macruby:build framework_instdir=$rvm_path/macruby-head framework_name=/macruby-head --trace"
|
170
|
+
rvm_ruby_make_install="rake framework:install framework_instdir=$rvm_path/macruby-head framework_name=/macruby-head --trace"
|
171
|
+
#rvm_ruby_rev="${rvm_ruby_rev:-head}" # Hard coding this for now
|
172
|
+
|
173
|
+
DESTDIR="$rvm_ruby_home" ; export DESTDIR
|
174
|
+
if [ -z "$rvm_ruby_rev" ] ; then
|
175
|
+
# TODO: Check if tag v is valid
|
176
|
+
#rvm_ruby_repo_url=$rvm_ruby_repo_url/tags/$rvm_ruby_tag
|
177
|
+
rvm_ruby_rev="head" # For now, until nightly release are available.
|
178
|
+
else
|
179
|
+
if [ "$rvm_ruby_rev" = "head" -o "$rvm_ruby_rev" = "trunk" ] ; then
|
180
|
+
#rvm_ruby_repo_url=$rvm_ruby_repo_url/trunk
|
181
|
+
rvm_ruby_rev="head"
|
182
|
+
else
|
183
|
+
#rvm_ruby_repo_url=$rvm_ruby_repo_url/trunk
|
184
|
+
rvm_ruby_rev="-r $rvm_ruby_rev"
|
185
|
+
fi
|
186
|
+
fi
|
187
|
+
__rvm_fetch $rvm_url
|
188
|
+
__rvm_run /usr/sbin/installer -pkg $rvm_ruby_package_name.pkg -target "$rvm_path/$rvm_ruby_package_name/"
|
189
|
+
#__rvm_install-source
|
190
|
+
unset DESTDIR
|
191
|
+
else
|
192
|
+
__rvm_log "fail" "MacRuby can only be installed on a Darwin OS."
|
193
|
+
fi
|
194
|
+
;;
|
195
|
+
|
196
|
+
ruby-enterprise|ree)
|
197
|
+
rvm_url="http://rubyforge.org/frs/download.php/58677/$rvm_ruby_package_name.tar.gz"
|
198
|
+
__rvm_log "info" "Installing Ruby Enterprise Edition from source to: $rvm_ruby_home"
|
199
|
+
pushd $rvm_source_path > /dev/null
|
200
|
+
if [ -d $rvm_ruby_src_path ] ; then
|
201
|
+
cd $rvm_ruby_src_path
|
202
|
+
else
|
203
|
+
__rvm_log "info" "\tDownloading $rvm_ruby_package_name, this may take a while depending on your connection..."
|
204
|
+
__rvm_fetch $rvm_url
|
205
|
+
if [ $? -gt 0 ] ; then __rvm_log "error" "There was an error, please check $rvm_ruby_log_path/*.error.log" ; popd 2> /dev/null ; return 1 ; fi
|
206
|
+
__rvm_log "info" "\tExtracting $rvm_ruby_package_name..."
|
207
|
+
mkdir -p $rvm_ruby_src_path
|
208
|
+
__rvm_run "extract" tar xzf $rvm_archives_path/$rvm_ruby_package_name.tar.gz -C $rvm_source_path
|
209
|
+
fi
|
210
|
+
|
211
|
+
__rvm_log "info" "\tInstalling $rvm_ruby_package_name, this may take a while, depending on your cpu(s)..."
|
212
|
+
mkdir -p $rvm_ruby_log_path
|
213
|
+
|
214
|
+
cd $rvm_ruby_src_path
|
215
|
+
__rvm_run "install" ./installer -a $rvm_path/ruby-enterprise-$rvm_ruby_version-$rvm_ruby_patch_level --dont-install-useful-gems --no-tcmalloc
|
216
|
+
chmod +x $rvm_ruby_home/bin/*
|
217
|
+
|
218
|
+
ln -fs $rvm_ruby_home/bin/ruby $rvm_path/bin/$rvm_ruby_package_name
|
219
|
+
|
220
|
+
__rvm_log "info" "\tInstalling rubygems dedicated to $rvm_ruby_package_name..."
|
221
|
+
rvm_gem_package_name="rubygems-1.3.5"
|
222
|
+
rvm_gem_url="http://rubyforge.org/frs/download.php/60718/$rvm_gem_package_name.tgz"
|
223
|
+
if [ -d $rvm_source_path/$rvm_gem_package_name ] ; then
|
224
|
+
cd $rvm_source_path/$rvm_gem_package_name
|
225
|
+
else
|
226
|
+
__rvm_fetch $rvm_gem_url
|
227
|
+
mkdir -p $rvm_source_path/$rvm_gem_package_name
|
228
|
+
__rvm_run "extract" tar zxf $rvm_archives_path/$rvm_gem_package_name.tgz -C $rvm_source_path
|
229
|
+
fi
|
230
|
+
# Well this is fun... fix nil error on require_paths:
|
231
|
+
sed -i.orig "s/require_paths\.join/require_paths.to_a.join/" $rvm_source_path/$rvm_gem_package_name/lib/rubygems/gem_path_searcher.rb > $rvm_ruby_log_path/rubygems.install.log 2> $rvm_ruby_log_path/rubygems.install.error.log
|
232
|
+
|
233
|
+
__rvm_run "rubygems.install" $rvm_ruby_home/bin/ruby $rvm_source_path/$rvm_gem_package_name/setup.rb
|
234
|
+
__rvm_log "info" "Installation of $rvm_ruby_package_name complete."
|
235
|
+
popd 2> /dev/null
|
236
|
+
|
237
|
+
for rvm_gem_name in rake ; do
|
238
|
+
__rvm_log "info" "Installing $rvm_gem_name"
|
239
|
+
__rvm_run "gems" $rvm_ruby_home/bin/gem install $rvm_gem_name --no-rdoc --no-ri -q
|
240
|
+
done
|
241
|
+
;;
|
242
|
+
|
243
|
+
rbx|rubinius)
|
244
|
+
__rvm_reset # Requires 1.8 to install due to parsetree. TOOD: Check for 1.8 + parse-tree
|
245
|
+
rvm_ruby_repo_url=$rvm_rubinius_repo_url
|
246
|
+
rvm_ruby_configure=""
|
247
|
+
rvm_ruby_make="rake"
|
248
|
+
rvm_ruby_make_install="rake install"
|
249
|
+
rvm_ruby_home="$rvm_path/$rvm_ruby_interpreter-$rvm_ruby_version"
|
250
|
+
#rvm_ruby_rev="head"
|
251
|
+
# TODO: Check if already git repo, then git pull origin master && build
|
252
|
+
if [ ! -d $rvm_ruby_home -o ! -d $rvm_ruby_home/.git ] ; then
|
253
|
+
rm -rf $rvm_ruby_home
|
254
|
+
git clone --depth 1 $rvm_ruby_repo_url $rvm_ruby_home
|
255
|
+
fi
|
256
|
+
cd $rvm_ruby_home
|
257
|
+
__rvm_run "build" $rvm_rubinius_jit rake build
|
258
|
+
for binary in ruby irb ; do
|
259
|
+
ln -fs $rvm_ruby_home/bin/rbx $rvm_ruby_home/bin/$binary
|
260
|
+
done
|
261
|
+
;;
|
262
|
+
|
263
|
+
jruby)
|
264
|
+
rvm_package_file="$rvm_ruby_interpreter-bin-$rvm_ruby_version"
|
265
|
+
rvm_url="http://dist.codehaus.org/$rvm_ruby_interpreter/$rvm_ruby_version/$rvm_package_file.zip"
|
266
|
+
rvm_jruby_repo_url="${rvm_jruby_repo_url:-"git://kenai.com/jruby~main"}"
|
267
|
+
|
268
|
+
__rvm_log "info" "Installing jRuby to: $rvm_ruby_home"
|
269
|
+
mkdir -p $rvm_ruby_log_path
|
270
|
+
pushd $rvm_source_path > /dev/null
|
271
|
+
|
272
|
+
if [ ! -z "$rvm_ruby_rev" ] ; then
|
273
|
+
if [ ! -d $rvm_path/$rvm_ruby_interpreter-$rvm_ruby_version -o ! -d $rvm_path/$rvm_ruby_interpreter-$rvm_ruby_version/.git ] ; then
|
274
|
+
git clone --depth 1 $rvm_jruby_repo_url $rvm_ruby_src_path
|
275
|
+
cd $rvm_ruby_src_path && ant
|
276
|
+
fi
|
277
|
+
else
|
278
|
+
if [ -d $rvm_ruby_src_path ] ; then
|
279
|
+
cd $rvm_ruby_src_path
|
280
|
+
else
|
281
|
+
__rvm_log "info" "\tDownloading $rvm_package_file, this may take a while depending on your connection..."
|
282
|
+
__rvm_fetch $rvm_url
|
283
|
+
__rvm_log "info" "\tExtracting $rvm_package_file..."
|
284
|
+
__rvm_run "extract" unzip -q $rvm_archives_path/$rvm_package_file.zip -d $rvm_source_path
|
285
|
+
cd $rvm_ruby_src_path
|
286
|
+
fi
|
287
|
+
fi
|
288
|
+
|
289
|
+
__rvm_log "info" "\tInstalling $rvm_ruby_package_name..."
|
290
|
+
mkdir -p $rvm_ruby_home/bin/
|
291
|
+
__rvm_run "sync" rsync -ag $rvm_ruby_src_path/ $rvm_ruby_home/
|
292
|
+
__rvm_run "nailgun" cd $rvm_ruby_src_path/tool/nailgun && make
|
293
|
+
popd 2> /dev/null
|
294
|
+
chmod +x $rvm_ruby_home/bin/*
|
295
|
+
for binary in jruby jgem jirb ; do
|
296
|
+
ln -fs $rvm_ruby_home/bin/$binary $rvm_ruby_home/bin/${binary#j}
|
297
|
+
done
|
298
|
+
|
299
|
+
ln -fs $rvm_ruby_home/bin/ruby $rvm_path/bin/$rvm_ruby_package_name
|
300
|
+
for rvm_gem_name in rake jruby-openssl ; do
|
301
|
+
__rvm_log "info" "Installing $rvm_gem_name"
|
302
|
+
__rvm_run "gems" $rvm_ruby_home/bin/jgem install $rvm_gem_name --no-rdoc --no-ri -q
|
303
|
+
done
|
304
|
+
;;
|
305
|
+
|
306
|
+
ruby)
|
307
|
+
if [ -z "rvm_ruby_configure" ] ; then rvm_ruby_configure="--enable-shared=true" ; fi
|
308
|
+
__rvm_install-source $*
|
309
|
+
;;
|
310
|
+
|
311
|
+
default)
|
312
|
+
__rvm_log "fail" "please specify a ruby implementation to install."
|
313
|
+
;;
|
314
|
+
|
315
|
+
*) __rvm_log "fail" "Ruby implementation '$rvm_ruby_interpreter' is not known."
|
316
|
+
|
317
|
+
esac
|
318
|
+
|
319
|
+
if [ ! -z "$ruby_options" ] ; then
|
320
|
+
RUBYOPT=$ruby_options ; export RUBYOPT
|
321
|
+
fi
|
322
|
+
|
323
|
+
}
|
324
|
+
|
325
|
+
function __rvm_uninstall {
|
326
|
+
|
327
|
+
if [ -z "$rvm_selected" ] ; then __rvm_select $* ; fi
|
328
|
+
|
329
|
+
if [ ! -z "$rvm_ruby_package_name" ] ; then
|
330
|
+
for dir in $rvm_source_path $rvm_path ; do
|
331
|
+
if [ -d $dir/$rvm_ruby_package_name ] ; then
|
332
|
+
__rvm_log "info" "Removing $dir/$rvm_ruby_package_name..."
|
333
|
+
rm -rf $dir/$rvm_ruby_package_name
|
334
|
+
else
|
335
|
+
__rvm_log "info" "it seems that $dir/$rvm_ruby_package_name is already non existent."
|
336
|
+
fi
|
337
|
+
if [ -e $rvm_bin_path/$rvm_ruby_package_name ] ; then
|
338
|
+
rm -f $rvm_bin_path/$rvm_ruby_package_name
|
339
|
+
fi
|
340
|
+
done ; unset dir
|
341
|
+
rm -rf $rvm_gem_path/$rvm_ruby_interpreter/$rvm_ruby_version*/
|
342
|
+
else
|
343
|
+
__rvm_log "fail" "Cannot uninstall unknown package '$rvm_ruby_package_name'"
|
344
|
+
fi
|
345
|
+
|
346
|
+
}
|